From 8c8f7df706d57663b504adab939ba30e77cac96c Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 04:51:22 +0330 Subject: [PATCH 01/17] Resolve VERSION_CODE through Gradle providers instead of deprecated properties --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 69066fa4f..eb04b51a4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -125,7 +125,7 @@ fun getVersionCode(): Int { logger.info("missing env version code: ${ex.message}") } if (code == 0) { - code = project.properties["VERSION_CODE"]?.toString()?.toIntOrNull() ?: 0 + code = project.providers.gradleProperty("VERSION_CODE").get().toIntOrNull() ?: 0 logger.info("project properties version code: $code") } return code From 0f74ad002dcca5562feefa259c9a70dfd74a1a74 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:12:45 +0330 Subject: [PATCH 02/17] Reuse appVersionCode --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index eb04b51a4..7adf9fa9d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -352,7 +352,7 @@ android { // getPackageInfo().versionCode not returning the correct value (in prod builds) when // value is set in AndroidManifest.xml so setting it here // for build type alpha, versionCode is set in env overriding gradle.properties - versionCode = getVersionCode() + versionCode = appVersionCode versionName = gitVersion buildConfigField("int", "BASE_VERSION_CODE", appVersionCode.toString()) vectorDrawables.useSupportLibrary = true @@ -360,7 +360,7 @@ android { create("tv") { dimension = "releaseType" applicationIdSuffix = ".tv" - versionCode = getVersionCode() + versionCode = appVersionCode versionName = gitVersion buildConfigField("int", "BASE_VERSION_CODE", appVersionCode.toString()) vectorDrawables.useSupportLibrary = true From ce95ff6fc867f9d6cfd97e93b80e393d58098d52 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:13:18 +0330 Subject: [PATCH 03/17] Create the download configuration explicitly instead of deprecated creating --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7adf9fa9d..ad631c7e3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -435,7 +435,7 @@ androidComponents { } } -val download by configurations.creating { +val download = configurations.create("download") { isTransitive = false } From 62f5bac6ce95efa426869fbd05ab410ce5efc185 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:13:42 +0330 Subject: [PATCH 04/17] Move compile,min and target Sdk to lib.toml --- app/build.gradle.kts | 6 +++--- gradle/lib.toml | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ad631c7e3..9ebbc37e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -157,14 +157,14 @@ val hasTvReleaseSigningConfig = .all { value -> !value.isNullOrEmpty() } android { - compileSdk = 37 + compileSdk = libs.versions.android.compileSdk.get().toInt() // https://developer.android.com/studio/build/configure-app-module namespace = "com.celzero.bravedns" defaultConfig { applicationId = "com.celzero.bravedns" - minSdk = 23 - targetSdk = 37 + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Defaults to false; the fdroid flavor overrides it via -PwebsiteDegoogled=true. buildConfigField("boolean", "IS_WEBSITE_DEGOOGLD_BUILD", "false") diff --git a/gradle/lib.toml b/gradle/lib.toml index 41072ba08..abeca02f8 100644 --- a/gradle/lib.toml +++ b/gradle/lib.toml @@ -1,4 +1,7 @@ [versions] +android-compileSdk = "37" +android-minSdk = "23" +android-targetSdk = "37" agp = "9.4.0" kotlin = "2.4.10" googleServices = "4.4.4" From ba3ac6fc7e8f1afbe7509eed0e6dc5f3a8ef2981 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:14:03 +0330 Subject: [PATCH 05/17] Migrate from com.github.kirich1409.viewbindingpropertydelegate to dev.androidbroadcast.vbpd --- app/build.gradle.kts | 6 ++---- gradle/lib.toml | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ebbc37e4..843b10ac8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -518,8 +518,7 @@ dependencies { implementation(libs.huAutsoftKrate) // viewBinding without reflection - "fullImplementation"(libs.githubKirich1409Viewbindingpropertydelegate) - "fullImplementation"(libs.githubKirich1409ViewbindingpropertydelegateNoreflection) + "fullImplementation"(libs.devAndroidbroadcastVbpd) // add ":debug" suffix to the dependency to include debug symbols download(firestackDependency()) @@ -604,8 +603,7 @@ dependencies { "tvImplementation"(libs.githubBumptechGlideOkhttp3Integration) { exclude(group = "glide-parent") } "kspTv"(libs.githubBumptechGlideCompilerTv) "tvImplementation"(libs.facebookShimmerShimmer) - "tvImplementation"(libs.githubKirich1409Viewbindingpropertydelegate) - "tvImplementation"(libs.githubKirich1409ViewbindingpropertydelegateNoreflection) + "tvImplementation"(libs.devAndroidbroadcastVbpd) "tvImplementation"(libs.androidxNavigationNavigationFragmentKtx) "tvImplementation"(libs.androidxNavigationNavigationUiKtx) "tvImplementation"(libs.androidxBiometricBiometric) diff --git a/gradle/lib.toml b/gradle/lib.toml index abeca02f8..1f6adada2 100644 --- a/gradle/lib.toml +++ b/gradle/lib.toml @@ -29,7 +29,7 @@ glideCompiler = "5.0.9" shimmer = "0.5.0" koin = "4.2.2" krate = "2.0.0" -viewbinding = "1.5.9" +viewbinding = "2.0.4" work = "2.11.2" ipaddress = "5.6.2" junit = "4.13.2" @@ -103,8 +103,7 @@ facebookShimmerShimmer = { module = "com.facebook.shimmer:shimmer", version.ref insertKoinKoinCore = { module = "io.insert-koin:koin-core", version.ref = "koin" } insertKoinKoinAndroid = { module = "io.insert-koin:koin-android", version.ref = "koin" } huAutsoftKrate = { module = "hu.autsoft:krate", version.ref = "krate" } -githubKirich1409Viewbindingpropertydelegate = { module = "com.github.kirich1409:viewbindingpropertydelegate", version.ref = "viewbinding" } -githubKirich1409ViewbindingpropertydelegateNoreflection = { module = "com.github.kirich1409:viewbindingpropertydelegate-noreflection", version.ref = "viewbinding" } +devAndroidbroadcastVbpd = { module = "dev.androidbroadcast.vbpd:vbpd", version.ref = "viewbinding" } androidxWorkWorkRuntimeKtx = { module = "androidx.work:work-runtime-ktx", version.ref = "work" } githubSeancfoleyIpaddress = { module = "com.github.seancfoley:ipaddress", version.ref = "ipaddress" } junitJunit = { module = "junit:junit", version.ref = "junit" } From 2efb74b61f84a4b18e9f2f35af0d06fce3366b17 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:19:21 +0330 Subject: [PATCH 06/17] Rename all com.github.kirich1409.viewbindingpropertydelegate imports to dev.androidbroadcast.vbpd --- app/build.gradle.kts | 3 +-- .../ui/fragment/RethinkPlusFragment.kt | 2 +- .../bravedns/sponsor/ui/SponsorFragment.kt | 2 +- .../sponsor/ui/SponsorSuccessFragment.kt | 2 +- .../ui/activity/AdvancedSettingActivity.kt | 2 +- .../ui/activity/AntiCensorshipActivity.kt | 8 +++---- .../bravedns/ui/activity/AppInfoActivity.kt | 9 ++++---- .../bravedns/ui/activity/AppListActivity.kt | 6 ++--- .../ui/activity/AppWiseDomainLogsActivity.kt | 6 ++--- .../ui/activity/AppWiseIpLogsActivity.kt | 2 +- .../ui/activity/BlockFreeDnsActivity.kt | 6 ++--- .../bravedns/ui/activity/BubbleActivity.kt | 4 ++-- .../bravedns/ui/activity/CheckoutActivity.kt | 4 ++-- .../ui/activity/ConfigureOtherDnsActivity.kt | 2 +- .../ui/activity/ConsoleLogActivity.kt | 8 +++---- .../ui/activity/CustomRulesActivity.kt | 2 +- .../ui/activity/CustomerSupportActivity.kt | 9 ++++---- .../ui/activity/DetailedStatisticsActivity.kt | 4 ++-- .../bravedns/ui/activity/DnsDetailActivity.kt | 2 +- .../bravedns/ui/activity/DnsListActivity.kt | 2 +- .../ui/activity/DomainConnectionsActivity.kt | 5 ++--- .../bravedns/ui/activity/EventsActivity.kt | 4 ++-- .../bravedns/ui/activity/FirewallActivity.kt | 2 +- .../ui/activity/MiscSettingsActivity.kt | 2 +- .../ui/activity/NetworkLogsActivity.kt | 2 +- .../bravedns/ui/activity/PauseActivity.kt | 2 +- .../bravedns/ui/activity/PingTestActivity.kt | 12 +++++----- .../ui/activity/ProxySettingsActivity.kt | 9 ++++---- .../ui/activity/PurchaseHistoryActivity.kt | 9 ++++---- .../ui/activity/RpnBypassAppsActivity.kt | 3 +-- .../ui/activity/RpnConfigDetailActivity.kt | 9 ++++---- .../ui/activity/RpnWinProxyDetailsActivity.kt | 6 ++--- .../ui/activity/ServerOrderHistoryActivity.kt | 10 ++++----- .../ui/activity/SmartDnsListActivity.kt | 2 +- .../ui/activity/TcpProxyMainActivity.kt | 6 ++--- .../ui/activity/TunnelSettingsActivity.kt | 8 +++---- .../UniversalFirewallSettingsActivity.kt | 6 ++--- .../bravedns/ui/activity/WelcomeActivity.kt | 2 +- .../ui/activity/WgConfigDetailActivity.kt | 8 +++---- .../ui/activity/WgConfigEditorActivity.kt | 8 +++---- .../ui/activity/WgIncludeAppsActivity.kt | 2 +- .../bravedns/ui/activity/WgMainActivity.kt | 6 ++--- .../LogActivityIntervalBottomSheet.kt | 1 - .../RpnLogActivityIntervalBottomSheet.kt | 4 +--- .../ui/dialog/SubscriptionAnimDialog.kt | 2 +- .../bravedns/ui/fragment/AboutFragment.kt | 22 +++++++++---------- .../bravedns/ui/fragment/ConfigureFragment.kt | 2 +- .../ui/fragment/ConnectionTrackerFragment.kt | 6 ++--- .../ui/fragment/CustomDomainFragment.kt | 2 +- .../bravedns/ui/fragment/CustomIpFragment.kt | 2 +- .../ui/fragment/DnsCryptListFragment.kt | 4 ++-- .../bravedns/ui/fragment/DnsLogFragment.kt | 6 ++--- .../ui/fragment/DnsProxyListFragment.kt | 4 ++-- .../ui/fragment/DnsSettingsFragment.kt | 4 ++-- .../bravedns/ui/fragment/DoTListFragment.kt | 2 +- .../bravedns/ui/fragment/DohListFragment.kt | 2 +- .../ui/fragment/FirewallSettingsFragment.kt | 2 +- .../ui/fragment/HomeScreenFragment.kt | 9 ++++---- .../bravedns/ui/fragment/ODoHListFragment.kt | 2 +- .../ui/fragment/RethinkBlocklistFragment.kt | 2 +- .../ui/fragment/RethinkListFragment.kt | 4 ++-- .../ui/fragment/RethinkLogFragment.kt | 6 ++--- .../fragment/RethinkPlusDashboardFragment.kt | 4 ++-- .../RethinkPlusManagePurchaseFragment.kt | 2 +- .../ui/fragment/ServerSelectionFragment.kt | 2 +- .../ui/fragment/SmartDnsListFragment.kt | 2 +- .../ui/fragment/SummaryStatisticsFragment.kt | 13 ++++++----- .../bravedns/ui/fragment/WgNwStatsFragment.kt | 6 ++--- .../ui/fragment/RethinkPlusFragment.kt | 2 +- .../ui/fragment/RethinkPlusFragment.kt | 2 +- 70 files changed, 160 insertions(+), 169 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 843b10ac8..05e98b074 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,8 +1,7 @@ import com.android.build.api.variant.FilterConfiguration -import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion -import java.util.Properties import java.io.FileInputStream +import java.util.Properties import java.lang.reflect.Method plugins { diff --git a/app/src/fdroid/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt b/app/src/fdroid/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt index 2b5b804d1..51a6f583a 100644 --- a/app/src/fdroid/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt +++ b/app/src/fdroid/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt @@ -19,10 +19,10 @@ import android.os.Bundle import android.view.View import androidx.core.view.isVisible import androidx.fragment.app.Fragment -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.FragmentRethinkPlusBinding import com.celzero.bravedns.util.SnackbarHelper.capitalizeWords +import dev.androidbroadcast.vbpd.viewBinding /** * F-Droid flavour, Rethink+ is not yet available on F-Droid. diff --git a/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorFragment.kt b/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorFragment.kt index 7dddc36b5..59ed52926 100644 --- a/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorFragment.kt @@ -22,7 +22,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.FragmentSponsorBinding import com.celzero.bravedns.sponsor.billing.SponsorPurchaseResult @@ -31,6 +30,7 @@ import com.celzero.bravedns.sponsor.viewmodel.SponsorViewModel import com.celzero.bravedns.util.Constants.Companion.RETHINKDNS_SPONSOR_LINK import com.celzero.bravedns.util.UIUtils.openUrl import com.celzero.bravedns.util.Utilities +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.launch import org.koin.android.ext.android.inject diff --git a/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorSuccessFragment.kt b/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorSuccessFragment.kt index 0ea76265e..1026040e9 100644 --- a/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorSuccessFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/sponsor/ui/SponsorSuccessFragment.kt @@ -18,9 +18,9 @@ package com.celzero.bravedns.sponsor.ui import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.FragmentSponsorSuccessBinding +import dev.androidbroadcast.vbpd.viewBinding class SponsorSuccessFragment : Fragment(R.layout.fragment_sponsor_success) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AdvancedSettingActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AdvancedSettingActivity.kt index ec62a3824..275d09b5c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AdvancedSettingActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AdvancedSettingActivity.kt @@ -21,7 +21,6 @@ import android.os.Bundle import android.view.View import android.widget.SeekBar import androidx.core.view.WindowInsetsControllerCompat -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.data.AppConfig @@ -37,6 +36,7 @@ import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class AdvancedSettingActivity : BaseActivity(R.layout.activity_advanced_setting) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AntiCensorshipActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AntiCensorshipActivity.kt index 6e17b86aa..fffc465d2 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AntiCensorshipActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AntiCensorshipActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_FIREWALL import android.content.Context import android.content.res.Configuration import android.os.Bundle @@ -24,7 +22,7 @@ import android.view.View import android.widget.CompoundButton import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat -import by.kirich1409.viewbindingdelegate.viewBinding +import androidx.core.view.isVisible import com.celzero.bravedns.R import com.celzero.bravedns.database.EventSource import com.celzero.bravedns.database.EventType @@ -33,14 +31,16 @@ import com.celzero.bravedns.databinding.ActivityAntiCensorshipBinding import com.celzero.bravedns.service.EventLogger import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_FIREWALL import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.Utilities.isOsVersionAbove412 import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.firestack.settings.Settings +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject -import androidx.core.view.isVisible import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets class AntiCensorshipActivity : BaseActivity(R.layout.activity_anti_censorship) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AppInfoActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AppInfoActivity.kt index 10001d7e5..53d2a925b 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AppInfoActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AppInfoActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.DialogInterface import android.content.Intent @@ -52,7 +50,6 @@ import androidx.paging.PagingData import androidx.paging.PagingDataAdapter import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.bumptech.glide.Glide import com.celzero.bravedns.R import com.celzero.bravedns.adapter.AppWiseCountriesAdapter @@ -76,17 +73,19 @@ import com.celzero.bravedns.service.ProxyManager import com.celzero.bravedns.service.ProxyManager.ID_NONE import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.ui.activity.AppInfoActivity.Companion.TOP_SLICES import com.celzero.bravedns.ui.custom.DonutChartView import com.celzero.bravedns.ui.fragment.SummaryStatisticsFragment import com.celzero.bravedns.ui.stats.CountryInsightsMapper import com.celzero.bravedns.ui.stats.StatsInsightsMath import com.celzero.bravedns.ui.stats.StatsViewMode -import com.celzero.bravedns.viewmodel.SummaryStatisticsViewModel import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.Constants.Companion.INVALID_UID import com.celzero.bravedns.util.Constants.Companion.RETHINK_PACKAGE import com.celzero.bravedns.util.Constants.Companion.VIEW_PAGER_SCREEN_TO_LOAD import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.UIUtils.getCountryNameFromFlag @@ -101,10 +100,12 @@ import com.celzero.bravedns.viewmodel.AppConnectionsViewModel import com.celzero.bravedns.viewmodel.AppInfoViewModel import com.celzero.bravedns.viewmodel.CustomDomainViewModel import com.celzero.bravedns.viewmodel.CustomIpViewModel +import com.celzero.bravedns.viewmodel.SummaryStatisticsViewModel import com.celzero.firestack.backend.Backend import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AppListActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AppListActivity.kt index 9096266c1..dfb0321ef 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AppListActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AppListActivity.kt @@ -29,16 +29,14 @@ import android.view.animation.Animation import android.view.animation.RotateAnimation import android.widget.CompoundButton import android.widget.Toast -import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.SearchView -import androidx.appcompat.widget.TooltipCompat import androidx.core.content.ContextCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.MutableLiveData import androidx.lifecycle.lifecycleScope +import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.FirewallAppListAdapter import com.celzero.bravedns.database.EventSource @@ -59,6 +57,7 @@ import com.celzero.bravedns.util.SnackbarHelper.applyTopInsetOnly import com.celzero.bravedns.viewmodel.AppInfoViewModel import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow @@ -67,7 +66,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel -import androidx.paging.LoadState import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets class AppListActivity : diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseDomainLogsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseDomainLogsActivity.kt index bef0b30a9..31b57f149 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseDomainLogsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseDomainLogsActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.ColorStateList import android.content.res.Configuration @@ -30,7 +28,6 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.bumptech.glide.Glide import com.celzero.bravedns.R import com.celzero.bravedns.adapter.AppWiseDomainsAdapter @@ -42,6 +39,8 @@ import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.util.Constants.Companion.INVALID_UID import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.Utilities @@ -51,6 +50,7 @@ import com.celzero.bravedns.viewmodel.AppConnectionsViewModel import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseIpLogsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseIpLogsActivity.kt index d2e0054fe..aec64875c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseIpLogsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/AppWiseIpLogsActivity.kt @@ -28,7 +28,6 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.bumptech.glide.Glide import com.celzero.bravedns.R import com.celzero.bravedns.adapter.AppWiseCountriesAdapter @@ -49,6 +48,7 @@ import com.celzero.bravedns.viewmodel.AppConnectionsViewModel import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/BlockFreeDnsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/BlockFreeDnsActivity.kt index 7d34f39ae..13b347fa6 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/BlockFreeDnsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/BlockFreeDnsActivity.kt @@ -15,15 +15,12 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_DNS import android.content.Context import android.content.res.Configuration import android.os.Bundle import android.view.View import androidx.core.view.WindowInsetsControllerCompat import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.BlockFreeDnsAdapter import com.celzero.bravedns.data.BlockFreeDnsItem @@ -31,11 +28,14 @@ import com.celzero.bravedns.data.BlockFreeDnsType import com.celzero.bravedns.databinding.ActivityBlockFreeDnsBinding import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_DNS import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.BlockFreeDnsViewModel +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/BubbleActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/BubbleActivity.kt index 3a2755eb9..5d9a17700 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/BubbleActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/BubbleActivity.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger import android.content.Intent import android.os.Bundle import android.view.View @@ -29,7 +28,6 @@ import androidx.paging.Pager import androidx.paging.PagingConfig import androidx.paging.cachedIn import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.BubbleAllowedAppsAdapter import com.celzero.bravedns.adapter.BubbleBlockedAppsAdapter @@ -44,11 +42,13 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.util.InternetProtocol +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.Themes.Companion.getCurrentTheme import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.AllowedAppsBubbleViewModel import com.celzero.bravedns.viewmodel.BlockedAppsBubbleViewModel +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/CheckoutActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/CheckoutActivity.kt index 17a8d93be..a6c292792 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/CheckoutActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/CheckoutActivity.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger import android.content.Context import android.content.Intent import android.content.res.Configuration @@ -29,7 +28,6 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.work.WorkInfo import androidx.work.WorkManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityCheckoutProxyBinding import com.celzero.bravedns.service.EncryptedFileManager @@ -37,12 +35,14 @@ import com.celzero.bravedns.service.EncryptionException import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.TcpProxyHelper import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils.fetchColor import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.firestack.backend.Backend +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/ConfigureOtherDnsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/ConfigureOtherDnsActivity.kt index 14775edbb..8c252f6bd 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/ConfigureOtherDnsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/ConfigureOtherDnsActivity.kt @@ -19,7 +19,6 @@ import android.content.Context import android.content.res.Configuration import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityConfigureOtherDnsBinding import com.celzero.bravedns.service.PersistentState @@ -33,6 +32,7 @@ import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applyTopInsetOnly +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class ConfigureOtherDnsActivity : BaseActivity(R.layout.activity_configure_other_dns) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/ConsoleLogActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/ConsoleLogActivity.kt index 04eb0d4a5..d1c52165d 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/ConsoleLogActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/ConsoleLogActivity.kt @@ -15,9 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_BUG_REPORT -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.Intent import android.content.pm.PackageInfo @@ -41,7 +38,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.work.WorkInfo import androidx.work.WorkManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.adapter.ConsoleLogAdapter @@ -57,6 +53,9 @@ import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_BUG_REPORT +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.SnackbarHelper.capitalizeWords import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities @@ -68,6 +67,7 @@ import com.celzero.bravedns.util.restoreFrost import com.celzero.bravedns.viewmodel.ConsoleLogViewModel import com.google.android.material.checkbox.MaterialCheckBox import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/CustomRulesActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/CustomRulesActivity.kt index 7df382a50..6df9e16bb 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/CustomRulesActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/CustomRulesActivity.kt @@ -23,7 +23,6 @@ import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityCustomRulesBinding import com.celzero.bravedns.service.BraveVPNService @@ -39,6 +38,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.tabs.TabLayoutMediator +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class CustomRulesActivity : BaseActivity(R.layout.activity_custom_rules) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/CustomerSupportActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/CustomerSupportActivity.kt index 031c7f389..f0722128c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/CustomerSupportActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/CustomerSupportActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.ClipData import android.content.Context import android.content.Intent @@ -29,7 +27,6 @@ import androidx.core.content.FileProvider import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.BuildConfig import com.celzero.bravedns.R import com.celzero.bravedns.database.ConsoleLogRepository @@ -44,12 +41,17 @@ import com.celzero.bravedns.scheduler.BugReportZipper import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.ui.activity.CustomerSupportActivity.Companion.BUG_ZIP_TRIM_BUDGET_BYTES +import com.celzero.bravedns.ui.activity.CustomerSupportActivity.Companion.BUG_ZIP_TRIM_THRESHOLD_BYTES import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.ProcessInfoCollector import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -58,7 +60,6 @@ import java.io.File import java.text.SimpleDateFormat import java.util.Date import java.util.Locale -import kotlin.math.exp /** * CustomerSupportActivity: lets users submit a support request via email. diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/DetailedStatisticsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/DetailedStatisticsActivity.kt index 79c9ded48..db877f01a 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/DetailedStatisticsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/DetailedStatisticsActivity.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.Configuration import android.content.res.Configuration.UI_MODE_NIGHT_YES @@ -26,7 +25,6 @@ import androidx.lifecycle.LiveData import androidx.paging.PagingData import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.SummaryStatisticsAdapter import com.celzero.bravedns.data.AppConfig @@ -36,6 +34,7 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.fragment.SummaryStatisticsFragment import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Themes.Companion.getCurrentTheme import com.celzero.bravedns.util.Utilities.isAtleastQ @@ -43,6 +42,7 @@ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.DetailedStatisticsViewModel import com.celzero.bravedns.viewmodel.SummaryStatisticsViewModel +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/DnsDetailActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/DnsDetailActivity.kt index ba6db1950..3f045ccec 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/DnsDetailActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/DnsDetailActivity.kt @@ -21,7 +21,6 @@ import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityDnsDetailBinding import com.celzero.bravedns.service.PersistentState @@ -33,6 +32,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.tabs.TabLayoutMediator +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class DnsDetailActivity : BaseActivity(R.layout.activity_dns_detail) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/DnsListActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/DnsListActivity.kt index 29b9e0210..30bf12bc1 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/DnsListActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/DnsListActivity.kt @@ -21,7 +21,6 @@ import android.content.res.Configuration import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.databinding.ActivityOtherDnsListBinding @@ -36,6 +35,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.firestack.backend.Backend +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/DomainConnectionsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/DomainConnectionsActivity.kt index 86ea54cc4..f9e8eb33b 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/DomainConnectionsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/DomainConnectionsActivity.kt @@ -24,12 +24,10 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.paging.PagingData import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.BlocklistAppsAdapter import com.celzero.bravedns.adapter.DomainConnectionsAdapter import com.celzero.bravedns.adapter.SummaryStatisticsAdapter -import kotlinx.coroutines.launch import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.databinding.ActivityDomainConnectionsBinding import com.celzero.bravedns.service.PersistentState @@ -38,7 +36,6 @@ import com.celzero.bravedns.ui.fragment.SummaryStatisticsFragment import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Themes.Companion.getCurrentTheme -import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.UIUtils.getCountryNameFromFlag import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded @@ -46,6 +43,8 @@ import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.DomainConnectionsViewModel import com.celzero.bravedns.viewmodel.SummaryStatisticsViewModel import com.google.android.material.chip.Chip +import dev.androidbroadcast.vbpd.viewBinding +import kotlinx.coroutines.launch import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/EventsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/EventsActivity.kt index 828123055..d78346155 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/EventsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/EventsActivity.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger import android.content.Context import android.content.res.Configuration import android.os.Bundle @@ -31,7 +30,6 @@ import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.EventsAdapter import com.celzero.bravedns.database.EventDao @@ -40,6 +38,7 @@ import com.celzero.bravedns.database.Severity import com.celzero.bravedns.databinding.ActivityEventsBinding import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils.formatToRelativeTime import com.celzero.bravedns.util.Utilities.delay @@ -52,6 +51,7 @@ import com.celzero.bravedns.viewmodel.EventsViewModel import com.celzero.bravedns.viewmodel.EventsViewModel.TopLevelFilter import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/FirewallActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/FirewallActivity.kt index 3a85f33b4..d6c4f164a 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/FirewallActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/FirewallActivity.kt @@ -23,7 +23,6 @@ import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityFirewallBinding import com.celzero.bravedns.service.BraveVPNService @@ -37,6 +36,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.tabs.TabLayoutMediator +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class FirewallActivity : BaseActivity(R.layout.activity_firewall) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/MiscSettingsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/MiscSettingsActivity.kt index 5460e189e..201fde6aa 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/MiscSettingsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/MiscSettingsActivity.kt @@ -41,7 +41,6 @@ import androidx.core.net.toUri import androidx.core.os.LocaleListCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.backup.BackupHelper import com.celzero.bravedns.data.AppConfig @@ -91,6 +90,7 @@ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.checkbox.MaterialCheckBox import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.koin.android.ext.android.inject diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/NetworkLogsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/NetworkLogsActivity.kt index 664303c9b..2808fe892 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/NetworkLogsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/NetworkLogsActivity.kt @@ -23,7 +23,6 @@ import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.databinding.ActivityNetworkLogsBinding @@ -44,6 +43,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.tabs.TabLayoutMediator +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class NetworkLogsActivity : BaseActivity(R.layout.activity_network_logs) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/PauseActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/PauseActivity.kt index 3c8a219e3..47b59e44e 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/PauseActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/PauseActivity.kt @@ -24,7 +24,6 @@ import android.os.SystemClock import android.view.MotionEvent import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityPauseBinding import com.celzero.bravedns.service.BraveVPNService @@ -38,6 +37,7 @@ import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.CompletableJob import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/PingTestActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/PingTestActivity.kt index 000189429..a309edc9a 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/PingTestActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/PingTestActivity.kt @@ -15,11 +15,12 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger import android.animation.AnimatorSet import android.animation.ObjectAnimator import android.content.Context import android.content.res.Configuration +import android.graphics.Canvas +import android.graphics.Paint import android.os.Bundle import android.view.View import android.view.animation.AccelerateDecelerateInterpolator @@ -32,7 +33,8 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import by.kirich1409.viewbindingdelegate.viewBinding +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.celzero.bravedns.R import com.celzero.bravedns.adapter.PingTestHistoryAdapter import com.celzero.bravedns.databinding.ActivityPingTestBinding @@ -42,17 +44,15 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.Utilities.isAtleastQ +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import android.graphics.Canvas -import android.graphics.Paint -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView import org.koin.android.ext.android.inject import kotlin.time.Duration.Companion.milliseconds diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/ProxySettingsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/ProxySettingsActivity.kt index 934406327..0a4fe7a2c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/ProxySettingsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/ProxySettingsActivity.kt @@ -16,8 +16,6 @@ package com.celzero.bravedns.ui.activity import android.annotation.SuppressLint -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent @@ -25,8 +23,8 @@ import android.content.res.Configuration import android.content.res.Configuration.UI_MODE_NIGHT_YES import android.os.Bundle import android.text.format.DateUtils -import android.view.View import android.view.MotionEvent +import android.view.View import android.view.WindowManager import android.view.animation.Animation import android.view.animation.RotateAnimation @@ -41,7 +39,6 @@ import android.widget.Toast import androidx.appcompat.widget.AppCompatImageView import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.database.EventSource @@ -54,7 +51,6 @@ import com.celzero.bravedns.databinding.DialogSetProxyBinding import com.celzero.bravedns.databinding.FragmentProxyConfigureBinding import com.celzero.bravedns.net.doh.Transaction import com.celzero.bravedns.rpnproxy.RpnProxyManager -import com.celzero.bravedns.rpnproxy.RpnProxyManager.AUTO_SERVER_ID import com.celzero.bravedns.service.EventLogger import com.celzero.bravedns.service.FirewallManager import com.celzero.bravedns.service.PersistentState @@ -67,6 +63,8 @@ import com.celzero.bravedns.ui.bottomsheet.OrbotBottomSheet import com.celzero.bravedns.ui.fragment.RethinkPlusFragment import com.celzero.bravedns.ui.fragment.ServerSelectionFragment import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY import com.celzero.bravedns.util.OrbotHelper import com.celzero.bravedns.util.SnackbarHelper.capitalizeWords import com.celzero.bravedns.util.Themes @@ -83,6 +81,7 @@ import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.firestack.backend.Backend import com.celzero.firestack.backend.RouterStats import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/PurchaseHistoryActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/PurchaseHistoryActivity.kt index 1ae95f75b..d0ad694a5 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/PurchaseHistoryActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/PurchaseHistoryActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.Configuration import android.os.Bundle @@ -26,7 +24,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.PurchaseHistoryAdapter import com.celzero.bravedns.databinding.ActivityPurchaseHistoryBinding @@ -34,19 +31,21 @@ import com.celzero.bravedns.iab.InAppBillingHandler import com.celzero.bravedns.rpnproxy.RpnProxyManager import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.viewmodel.PurchaseHistoryViewModel import com.facebook.shimmer.Shimmer +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel -import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent - /** * Displays the full purchase / subscription state-change history stored in * the SubscriptionStateHistory table, loaded in pages of 30 rows at a time diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnBypassAppsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnBypassAppsActivity.kt index eb66405eb..d6696e56d 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnBypassAppsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnBypassAppsActivity.kt @@ -26,14 +26,12 @@ import android.view.ViewGroup import android.view.animation.Animation import android.view.animation.RotateAnimation import android.widget.CompoundButton -import android.widget.Toast import androidx.appcompat.widget.SearchView import androidx.core.content.ContextCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.bumptech.glide.Glide import com.celzero.bravedns.R import com.celzero.bravedns.database.AppInfo @@ -54,6 +52,7 @@ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnConfigDetailActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnConfigDetailActivity.kt index cd792835a..c7e26a99d 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnConfigDetailActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnConfigDetailActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.animation.ValueAnimator import android.content.ClipData import android.content.ClipboardManager @@ -45,7 +43,6 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.core.graphics.withRotation import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.data.SsidItem @@ -58,8 +55,11 @@ import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.activity.NetworkLogsActivity.Companion.RULES_SEARCH_ID_RPN import com.celzero.bravedns.ui.activity.RpnConfigDetailActivity.Companion.STATS_POLL_MS +import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent import com.celzero.bravedns.ui.dialog.RpnSsidDialog import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.SnackbarHelper import com.celzero.bravedns.util.SnackbarHelper.capitalizeWords import com.celzero.bravedns.util.SsidPermissionManager @@ -76,6 +76,7 @@ import com.celzero.firestack.backend.IPMetadata import com.celzero.firestack.backend.RouterStats import com.google.android.material.appbar.AppBarLayout import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.delay @@ -87,8 +88,6 @@ import java.util.Locale import kotlin.math.abs import kotlin.time.Duration.Companion.milliseconds -import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent - /** * Detail screen for a server-provided WireGuard / WIN proxy. * diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnWinProxyDetailsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnWinProxyDetailsActivity.kt index cab5c5fa6..45fcc11cb 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/RpnWinProxyDetailsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/RpnWinProxyDetailsActivity.kt @@ -15,15 +15,12 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.Configuration import android.os.Bundle import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityRpnWinProxyDetailBinding import com.celzero.bravedns.service.DomainRulesManager @@ -31,6 +28,8 @@ import com.celzero.bravedns.service.IpRulesManager import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.ProxyManager import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Themes.Companion.getCurrentTheme import com.celzero.bravedns.util.Utilities @@ -38,6 +37,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/ServerOrderHistoryActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/ServerOrderHistoryActivity.kt index 981dc1c51..e7eaa8cbe 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/ServerOrderHistoryActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/ServerOrderHistoryActivity.kt @@ -15,13 +15,10 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.Intent import android.content.res.Configuration import android.os.Bundle -import android.view.View import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.isVisible @@ -29,7 +26,6 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.ServerOrderHistoryAdapter import com.celzero.bravedns.databinding.ActivityServerOrderHistoryBinding @@ -39,6 +35,9 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.bottomsheet.EntitlementDetailBottomSheet +import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Themes.Companion.isActivityLightTheme import com.celzero.bravedns.util.Utilities.isAtleastQ @@ -46,14 +45,13 @@ import com.celzero.bravedns.util.Utilities.showToastUiCentered import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.viewmodel.ServerOrderHistoryViewModel import com.facebook.shimmer.Shimmer +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel -import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent - /** * Shows the user's raw purchase / order records fetched live from the billing * server's `GET /g/tx?cid=&purchaseToken=&tot=20` endpoint. diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/SmartDnsListActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/SmartDnsListActivity.kt index e8855c70d..d77be48a9 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/SmartDnsListActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/SmartDnsListActivity.kt @@ -20,7 +20,6 @@ import android.content.Intent import android.content.res.Configuration import android.os.Bundle import androidx.core.view.WindowInsetsControllerCompat -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivitySmartDnsListBinding import com.celzero.bravedns.service.PersistentState @@ -30,6 +29,7 @@ import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applyTopInsetOnly +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class SmartDnsListActivity : BaseActivity(R.layout.activity_smart_dns_list) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/TcpProxyMainActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/TcpProxyMainActivity.kt index de832051e..0b35d1c5c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/TcpProxyMainActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/TcpProxyMainActivity.kt @@ -1,7 +1,5 @@ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.Configuration import android.os.Bundle @@ -9,7 +7,6 @@ import android.view.View import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.databinding.ActivityTcpProxyBinding @@ -17,12 +14,15 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.ProxyManager import com.celzero.bravedns.service.TcpProxyHelper import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.ProxyAppsMappingViewModel +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/TunnelSettingsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/TunnelSettingsActivity.kt index b49381f8c..eb71bba85 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/TunnelSettingsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/TunnelSettingsActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.res.ColorStateList import android.content.res.Configuration @@ -35,14 +33,13 @@ import androidx.appcompat.widget.AppCompatRadioButton import androidx.appcompat.widget.AppCompatTextView import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.database.EventSource -import com.celzero.bravedns.rpnproxy.RpnProxyManager import com.celzero.bravedns.database.EventType import com.celzero.bravedns.database.Severity import com.celzero.bravedns.databinding.ActivityTunnelSettingsBinding +import com.celzero.bravedns.rpnproxy.RpnProxyManager import com.celzero.bravedns.service.EventLogger import com.celzero.bravedns.service.FirewallManager import com.celzero.bravedns.service.PersistentState @@ -52,6 +49,8 @@ import com.celzero.bravedns.ui.bottomsheet.RethinkInRethinkWarningBottomSheet import com.celzero.bravedns.ui.dialog.NetworkReachabilityDialog import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.InternetProtocol +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.SnackbarHelper import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils @@ -61,6 +60,7 @@ import com.celzero.bravedns.util.Utilities.showToastUiCentered import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.koin.android.ext.android.inject diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/UniversalFirewallSettingsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/UniversalFirewallSettingsActivity.kt index 6498487fe..50c915eff 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/UniversalFirewallSettingsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/UniversalFirewallSettingsActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_FIREWALL import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent @@ -29,7 +27,6 @@ import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.ConnectionTrackerRepository import com.celzero.bravedns.database.EventSource @@ -42,12 +39,15 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.util.BackgroundAccessibilityService import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_FIREWALL import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.isAtleastQ import com.celzero.bravedns.util.handleFrostEffectIfNeeded import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/WelcomeActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/WelcomeActivity.kt index 2fc67fad5..3d2ac0d1b 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/WelcomeActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/WelcomeActivity.kt @@ -32,7 +32,6 @@ import androidx.core.view.WindowInsetsCompat import androidx.core.view.updateLayoutParams import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityWelcomeBinding import com.celzero.bravedns.service.PersistentState @@ -40,6 +39,7 @@ import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.HomeScreenActivity import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.handleFrostEffectIfNeeded +import dev.androidbroadcast.vbpd.viewBinding import org.koin.android.ext.android.inject class WelcomeActivity : BaseActivity(R.layout.activity_welcome) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigDetailActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigDetailActivity.kt index 6e324fbdc..6c6c9b121 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigDetailActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigDetailActivity.kt @@ -15,9 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context import android.content.Intent import android.content.res.Configuration @@ -38,7 +35,6 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.WgPeersAdapter import com.celzero.bravedns.customdownloader.IpInfoDownloader @@ -64,6 +60,9 @@ import com.celzero.bravedns.ui.dialog.WgAddPeerDialog import com.celzero.bravedns.ui.dialog.WgHopDialog import com.celzero.bravedns.ui.dialog.WgSsidDialog import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.SnackbarHelper import com.celzero.bravedns.util.SsidPermissionManager import com.celzero.bravedns.util.Themes @@ -82,6 +81,7 @@ import com.celzero.bravedns.wireguard.WgInterface import com.celzero.firestack.backend.IPMetadata import com.celzero.firestack.backend.RouterStats import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import inet.ipaddr.HostName import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigEditorActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigEditorActivity.kt index d1784df40..2ddaa8281 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigEditorActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/WgConfigEditorActivity.kt @@ -15,22 +15,21 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY -import com.celzero.bravedns.util.Logger.throwableToException import android.content.Context import android.content.res.Configuration import android.os.Bundle import android.widget.Toast import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.lifecycleScope -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.ActivityWgConfigEditorBinding import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.WireguardManager import com.celzero.bravedns.ui.BaseActivity import com.celzero.bravedns.ui.activity.WgConfigDetailActivity.Companion.INTENT_EXTRA_WG_TYPE +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY +import com.celzero.bravedns.util.Logger.throwableToException import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils.clipboardCopy import com.celzero.bravedns.util.Utilities @@ -41,6 +40,7 @@ import com.celzero.bravedns.wireguard.Config import com.celzero.bravedns.wireguard.WgInterface import com.celzero.bravedns.wireguard.util.ErrorMessages import com.celzero.firestack.backend.Backend +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/WgIncludeAppsActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/WgIncludeAppsActivity.kt index 4070630c4..cfd86844d 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/WgIncludeAppsActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/WgIncludeAppsActivity.kt @@ -29,7 +29,6 @@ import androidx.appcompat.widget.SearchView import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.WgIncludeAppsAdapter import com.celzero.bravedns.database.RefreshDatabase @@ -45,6 +44,7 @@ import com.celzero.bravedns.util.SnackbarHelper.applySystemBarEdgeInsets import com.celzero.bravedns.viewmodel.ProxyAppsMappingViewModel import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/activity/WgMainActivity.kt b/app/src/main/java/com/celzero/bravedns/ui/activity/WgMainActivity.kt index 3a72dda14..b44b938f0 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/activity/WgMainActivity.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/activity/WgMainActivity.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.activity -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent @@ -31,7 +29,6 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.OneWgConfigAdapter import com.celzero.bravedns.adapter.WgConfigAdapter @@ -44,6 +41,8 @@ import com.celzero.bravedns.service.EventLogger import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.WireguardManager import com.celzero.bravedns.ui.BaseActivity +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_PROXY import com.celzero.bravedns.util.QrCodeFromFileScanner import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.TunnelImporter @@ -59,6 +58,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.zxing.qrcode.QRCodeReader import com.journeyapps.barcodescanner.ScanContract import com.journeyapps.barcodescanner.ScanOptions +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/LogActivityIntervalBottomSheet.kt b/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/LogActivityIntervalBottomSheet.kt index 63f3011dd..a69aaadab 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/LogActivityIntervalBottomSheet.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/LogActivityIntervalBottomSheet.kt @@ -22,7 +22,6 @@ import android.view.View import android.view.ViewGroup import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.ConnectionTrackerRepository import com.celzero.bravedns.database.DnsLogRepository diff --git a/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/RpnLogActivityIntervalBottomSheet.kt b/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/RpnLogActivityIntervalBottomSheet.kt index 39ea845b0..b6d2d257f 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/RpnLogActivityIntervalBottomSheet.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/bottomsheet/RpnLogActivityIntervalBottomSheet.kt @@ -23,7 +23,6 @@ import android.view.ViewGroup import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.ConnectionTrackerRepository import com.celzero.bravedns.database.WindowCountRow @@ -33,6 +32,7 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.adapter.AppActivityAdapter import com.celzero.bravedns.ui.adapter.AppActivityEntry import com.celzero.bravedns.ui.adapter.AppActivitySummary +import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.Themes.Companion.getBottomSheetCurrentTheme import com.celzero.bravedns.util.Utilities.convertLongToTime @@ -42,8 +42,6 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject -import com.celzero.bravedns.ui.custom.EmbeddedDolphinContent - /** * RPN-scoped variant of [LogActivityIntervalBottomSheet]: identical list * interaction (per-app summaries, lazy expansion), but every query is diff --git a/app/src/main/java/com/celzero/bravedns/ui/dialog/SubscriptionAnimDialog.kt b/app/src/main/java/com/celzero/bravedns/ui/dialog/SubscriptionAnimDialog.kt index 429c089e6..c99c4deef 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/dialog/SubscriptionAnimDialog.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/dialog/SubscriptionAnimDialog.kt @@ -7,9 +7,9 @@ import android.view.View import android.view.ViewGroup import androidx.core.graphics.drawable.toDrawable import androidx.fragment.app.DialogFragment -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.DialogSubscriptionAnimBinding +import dev.androidbroadcast.vbpd.viewBinding import nl.dionsegijn.konfetti.core.Angle import nl.dionsegijn.konfetti.core.Party import nl.dionsegijn.konfetti.core.Position diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/AboutFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/AboutFragment.kt index aa11070e4..ccd0443b3 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/AboutFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/AboutFragment.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.annotation.SuppressLint import android.content.ActivityNotFoundException import android.content.ClipData @@ -42,19 +40,18 @@ import android.view.MotionEvent import android.view.View import android.view.WindowManager import android.widget.Toast +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat.getSystemService import androidx.core.net.toUri -import androidx.activity.result.contract.ActivityResultContracts -import androidx.activity.result.ActivityResultLauncher import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.work.WorkInfo import androidx.work.WorkManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.database.AppDatabase @@ -74,21 +71,23 @@ import com.celzero.bravedns.service.AppUpdater import com.celzero.bravedns.service.EventLogger import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController +import com.celzero.bravedns.sponsor.provider.SponsorProvider +import com.celzero.bravedns.sponsor.repository.SponsorRepository import com.celzero.bravedns.ui.HomeScreenActivity import com.celzero.bravedns.ui.activity.ConsoleLogActivity import com.celzero.bravedns.ui.activity.EventsActivity import com.celzero.bravedns.ui.activity.FragmentHostActivity import com.celzero.bravedns.ui.bottomsheet.BugReportFilesBottomSheet -import com.celzero.bravedns.sponsor.provider.SponsorProvider -import com.celzero.bravedns.sponsor.repository.SponsorRepository import com.celzero.bravedns.util.Constants.Companion.INIT_TIME_MS import com.celzero.bravedns.util.Constants.Companion.TIME_FORMAT_4 import com.celzero.bravedns.util.FirebaseErrorReporting import com.celzero.bravedns.util.FirebaseErrorReporting.TOKEN_LENGTH +import com.celzero.bravedns.util.GoMemoryProfiler import com.celzero.bravedns.util.KernelProc -import com.celzero.bravedns.util.MemoryUtils +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.MemoryProfiler -import com.celzero.bravedns.util.GoMemoryProfiler +import com.celzero.bravedns.util.MemoryUtils import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.UIUtils.htmlToSpannedText @@ -108,15 +107,15 @@ import com.celzero.bravedns.util.disableFrostTemporarily import com.celzero.bravedns.util.restoreFrost import com.celzero.firestack.intra.Intra import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.cancel import kotlinx.coroutines.isActive -import kotlinx.coroutines.NonCancellable -import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeout @@ -125,6 +124,7 @@ import org.koin.core.component.KoinComponent import java.io.File import java.lang.reflect.Modifier import java.util.concurrent.TimeUnit +import kotlin.time.Duration.Companion.milliseconds class AboutFragment : Fragment(R.layout.fragment_about), View.OnClickListener, KoinComponent { private val b by viewBinding(FragmentAboutBinding::bind) diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/ConfigureFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/ConfigureFragment.kt index fca53a5d6..f18eed2ed 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/ConfigureFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/ConfigureFragment.kt @@ -20,7 +20,6 @@ import android.os.Bundle import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.databinding.FragmentConfigureBinding @@ -34,6 +33,7 @@ import com.celzero.bravedns.ui.activity.NetworkLogsActivity import com.celzero.bravedns.ui.activity.ProxySettingsActivity import com.celzero.bravedns.ui.activity.TunnelSettingsActivity import com.celzero.bravedns.util.Utilities +import dev.androidbroadcast.vbpd.viewBinding class ConfigureFragment : Fragment(R.layout.fragment_configure) { diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/ConnectionTrackerFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/ConnectionTrackerFragment.kt index b16073f74..aef540673 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/ConnectionTrackerFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/ConnectionTrackerFragment.kt @@ -15,8 +15,6 @@ limitations under the License. */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context.INPUT_METHOD_SERVICE import android.os.Bundle import android.view.View @@ -30,7 +28,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.ConnectionLogAdapter import com.celzero.bravedns.adapter.ConnectionTrackerAdapter @@ -43,11 +40,14 @@ import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.activity.NetworkLogsActivity import com.celzero.bravedns.ui.activity.UniversalFirewallSettingsActivity import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.UIUtils.formatToRelativeTime import com.celzero.bravedns.viewmodel.ConnectionTrackerViewModel import com.celzero.bravedns.viewmodel.ConnectionTrackerViewModel.TopLevelFilter import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomDomainFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomDomainFragment.kt index 887a5c4fa..37cff90e8 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomDomainFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomDomainFragment.kt @@ -30,7 +30,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.adapter.CustomDomainAdapter @@ -53,6 +52,7 @@ import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.removeLeadingAndTrailingDots import com.celzero.bravedns.viewmodel.CustomDomainViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomIpFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomIpFragment.kt index 4debc3d4e..06272bbe0 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomIpFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/CustomIpFragment.kt @@ -31,7 +31,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.RethinkDnsApplication.Companion.DEBUG import com.celzero.bravedns.adapter.CustomIpAdapter @@ -51,6 +50,7 @@ import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.viewmodel.CustomIpViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import inet.ipaddr.IPAddress import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsCryptListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsCryptListFragment.kt index 469a87ed0..44c2f24e6 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsCryptListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsCryptListFragment.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger import android.content.res.Configuration import android.content.res.Resources import android.os.Bundle @@ -29,7 +28,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.DnsCryptEndpointAdapter import com.celzero.bravedns.adapter.DnsCryptRelayEndpointAdapter @@ -40,12 +38,14 @@ import com.celzero.bravedns.databinding.DialogSetDnsCryptBinding import com.celzero.bravedns.databinding.FragmentDnsCryptListBinding import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.ui.dialog.DnsCryptRelaysDialog +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.Themes import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.viewmodel.DnsCryptEndpointViewModel import com.celzero.bravedns.viewmodel.DnsCryptRelayEndpointViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsLogFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsLogFragment.kt index 7af46295c..5e889ed4c 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsLogFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsLogFragment.kt @@ -15,8 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context.INPUT_METHOD_SERVICE import android.os.Bundle import android.view.View @@ -28,7 +26,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.bumptech.glide.Glide import com.celzero.bravedns.R import com.celzero.bravedns.adapter.DnsLogAdapter @@ -41,10 +38,13 @@ import com.celzero.bravedns.ui.activity.NetworkLogsActivity.Companion.RULES_SEAR import com.celzero.bravedns.ui.activity.NetworkLogsActivity.Companion.RULES_SEARCH_ID_WIREGUARD import com.celzero.bravedns.ui.activity.UniversalFirewallSettingsActivity import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.UIUtils.formatToRelativeTime import com.celzero.bravedns.viewmodel.DnsLogViewModel import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsProxyListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsProxyListFragment.kt index 3159b5df0..8fef803d9 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsProxyListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsProxyListFragment.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger import android.content.res.Resources import android.os.Bundle import android.view.View @@ -29,7 +28,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.DnsProxyEndpointAdapter import com.celzero.bravedns.data.AppConfig @@ -40,11 +38,13 @@ import com.celzero.bravedns.databinding.FragmentDnsProxyListBinding import com.celzero.bravedns.service.FirewallManager import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.service.VpnController +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.viewmodel.DnsProxyEndpointViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import inet.ipaddr.IPAddressString import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsSettingsFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsSettingsFragment.kt index 87cb0b4a5..8ac293713 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsSettingsFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DnsSettingsFragment.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger import android.content.DialogInterface import android.content.Intent import android.os.Bundle @@ -27,7 +26,6 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.work.WorkManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.database.EventSource @@ -48,6 +46,7 @@ import com.celzero.bravedns.ui.activity.SmartDnsListActivity import com.celzero.bravedns.ui.bottomsheet.BlockFreeDnsModeBottomSheet import com.celzero.bravedns.ui.bottomsheet.DnsRecordTypesBottomSheet import com.celzero.bravedns.ui.bottomsheet.LocalBlocklistsBottomSheet +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.SnackbarHelper import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.UIUtils.fetchColor @@ -56,6 +55,7 @@ import com.celzero.bravedns.util.Utilities.isAtleastR import com.celzero.bravedns.util.Utilities.isPlayStoreFlavour import com.celzero.firestack.backend.Backend import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DoTListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DoTListFragment.kt index 9ddefe115..456231e49 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DoTListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DoTListFragment.kt @@ -27,7 +27,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.DoTEndpointAdapter import com.celzero.bravedns.data.AppConfig @@ -38,6 +37,7 @@ import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.viewmodel.DoTEndpointViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/DohListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/DohListFragment.kt index 08e426bd7..e11d68b9d 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/DohListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/DohListFragment.kt @@ -27,7 +27,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.DohEndpointAdapter import com.celzero.bravedns.data.AppConfig @@ -38,6 +37,7 @@ import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.viewmodel.DoHEndpointViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/FirewallSettingsFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/FirewallSettingsFragment.kt index 6c3064f9a..cc48234c4 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/FirewallSettingsFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/FirewallSettingsFragment.kt @@ -19,7 +19,6 @@ import android.content.Intent import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.databinding.FragmentFirewallSettingsBinding import com.celzero.bravedns.ui.activity.CustomRulesActivity @@ -27,6 +26,7 @@ import com.celzero.bravedns.ui.activity.UniversalFirewallSettingsActivity import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.Constants.Companion.INTENT_UID import com.celzero.bravedns.util.Constants.Companion.UID_EVERYBODY +import dev.androidbroadcast.vbpd.viewBinding import org.koin.core.component.KoinComponent class FirewallSettingsFragment : Fragment(R.layout.fragment_firewall_settings), KoinComponent { diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt index 3ed6e2129..a06722d6b 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt @@ -27,6 +27,7 @@ import android.content.pm.PackageManager import android.content.res.ColorStateList import android.content.res.Configuration import android.graphics.Color +import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.icu.text.CompactDecimalFormat import android.net.ConnectivityManager @@ -49,9 +50,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.LinearInterpolator +import android.widget.FrameLayout import android.widget.GridLayout import android.widget.LinearLayout -import android.widget.FrameLayout import android.widget.Toast import androidx.activity.result.ActivityResult import androidx.activity.result.ActivityResultLauncher @@ -65,10 +66,8 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.distinctUntilChanged import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.database.AppInfo @@ -115,6 +114,8 @@ import com.celzero.bravedns.ui.activity.WgMainActivity import com.celzero.bravedns.ui.bottomsheet.HomeScreenSettingBottomSheet import com.celzero.bravedns.ui.bottomsheet.LogActivityIntervalBottomSheet import com.celzero.bravedns.ui.custom.AppHistogramView +import com.celzero.bravedns.ui.fragment.HomeScreenFragment.Companion.BORDER_FAST_ROTATION_MS +import com.celzero.bravedns.ui.fragment.HomeScreenFragment.Companion.BORDER_SLOW_ROTATION_MS import com.celzero.bravedns.ui.tour.GuidedTourManager import com.celzero.bravedns.ui.tour.TourOverlayController import com.celzero.bravedns.util.Constants @@ -146,6 +147,7 @@ import com.facebook.shimmer.Shimmer import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import com.waseemsabir.betterypermissionhelper.BatteryPermissionHelper +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -154,7 +156,6 @@ import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject -import android.graphics.drawable.Drawable import java.util.Calendar import java.util.Locale import java.util.Locale.getDefault diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/ODoHListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/ODoHListFragment.kt index a9112101e..7dfc022d8 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/ODoHListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/ODoHListFragment.kt @@ -27,7 +27,6 @@ import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.ODoHEndpointAdapter import com.celzero.bravedns.data.AppConfig @@ -38,6 +37,7 @@ import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.viewmodel.ODoHEndpointViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkBlocklistFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkBlocklistFragment.kt index 3a7b8ca9d..c43709a04 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkBlocklistFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkBlocklistFragment.kt @@ -32,7 +32,6 @@ import androidx.paging.LoadState import androidx.paging.filter import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.LocalAdvancedViewAdapter import com.celzero.bravedns.adapter.LocalSimpleViewAdapter @@ -72,6 +71,7 @@ import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.chip.Chip import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkListFragment.kt index 3a96f54cb..a56819fd4 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkListFragment.kt @@ -15,7 +15,6 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger import android.content.Intent import android.content.res.Resources import android.os.Bundle @@ -33,7 +32,6 @@ import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.CircularProgressDrawable import androidx.work.WorkInfo import androidx.work.WorkManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.RethinkEndpointAdapter import com.celzero.bravedns.customdownloader.LocalBlocklistCoordinator @@ -49,11 +47,13 @@ import com.celzero.bravedns.ui.activity.ConfigureRethinkBasicActivity.Companion. import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.Constants.Companion.INIT_TIME_MS import com.celzero.bravedns.util.Constants.Companion.MAX_ENDPOINT +import com.celzero.bravedns.util.Logger import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.util.UIUtils.fetchColor import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.viewmodel.RethinkEndpointViewModel import com.google.android.material.chip.Chip +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkLogFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkLogFragment.kt index e2a54e3d7..48341cd0b 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkLogFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkLogFragment.kt @@ -15,8 +15,6 @@ limitations under the License. */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Context.INPUT_METHOD_SERVICE import android.os.Bundle import android.view.View @@ -26,16 +24,18 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.RethinkLogAdapter import com.celzero.bravedns.database.RethinkLogRepository import com.celzero.bravedns.databinding.FragmentConnectionTrackerBinding import com.celzero.bravedns.service.PersistentState import com.celzero.bravedns.util.Constants +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.UIUtils.formatToRelativeTime import com.celzero.bravedns.viewmodel.RethinkLogViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusDashboardFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusDashboardFragment.kt index 55c643f8e..bc211ed16 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusDashboardFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusDashboardFragment.kt @@ -24,7 +24,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.SubscriptionStatus import com.celzero.bravedns.database.SubscriptionStatusRepository @@ -57,6 +56,7 @@ import com.celzero.bravedns.util.Utilities.showToastUiCentered import com.celzero.bravedns.viewmodel.ServerSelectionViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.progressindicator.LinearProgressIndicator +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.delay @@ -64,10 +64,10 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.activityViewModel -import kotlin.time.Duration.Companion.milliseconds import java.text.SimpleDateFormat import java.util.Date import java.util.Locale +import kotlin.time.Duration.Companion.milliseconds class RethinkPlusDashboardFragment : Fragment(R.layout.fragment_rethink_plus_dashboard) { private val b by viewBinding(FragmentRethinkPlusDashboardBinding::bind) diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusManagePurchaseFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusManagePurchaseFragment.kt index eab557693..adc04e912 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusManagePurchaseFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/RethinkPlusManagePurchaseFragment.kt @@ -26,7 +26,6 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.SubscriptionStatus import com.celzero.bravedns.database.SubscriptionStatusRepository @@ -57,6 +56,7 @@ import com.celzero.bravedns.util.Utilities.showToastUiCentered import com.celzero.bravedns.viewmodel.ManagePurchaseViewModel import com.celzero.bravedns.viewmodel.ManagePurchaseViewModel.OperationState import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/ServerSelectionFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/ServerSelectionFragment.kt index 90f74b56d..77d3c547f 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/ServerSelectionFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/ServerSelectionFragment.kt @@ -61,7 +61,6 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.database.AppInfoRepository import com.celzero.bravedns.database.ConnectionTrackerDAO @@ -104,6 +103,7 @@ import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.progressindicator.LinearProgressIndicator +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.async diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/SmartDnsListFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/SmartDnsListFragment.kt index d88d87e2f..5c6b2dd3e 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/SmartDnsListFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/SmartDnsListFragment.kt @@ -24,13 +24,13 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.SmartDnsEndpointAdapter import com.celzero.bravedns.data.AppConfig import com.celzero.bravedns.databinding.FragmentSmartDnsListBinding import com.celzero.bravedns.util.RecyclerViewSpacingDecoration import com.celzero.bravedns.viewmodel.SmartDnsEndpointViewModel +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/SummaryStatisticsFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/SummaryStatisticsFragment.kt index 876400455..244f7dc0a 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/SummaryStatisticsFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/SummaryStatisticsFragment.kt @@ -15,18 +15,20 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.Intent import android.content.res.ColorStateList import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.widget.LinearLayout import android.widget.Toast +import androidx.core.graphics.ColorUtils import androidx.fragment.app.Fragment +import androidx.lifecycle.LiveData import androidx.lifecycle.lifecycleScope +import androidx.paging.PagingData import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.SummaryStatisticsAdapter import com.celzero.bravedns.data.AppConfig @@ -43,23 +45,22 @@ import com.celzero.bravedns.service.VpnController import com.celzero.bravedns.ui.activity.DetailedStatisticsActivity import com.celzero.bravedns.ui.bottomsheet.SummaryStatsFilterBottomSheet import com.celzero.bravedns.ui.custom.DonutChartView +import com.celzero.bravedns.ui.fragment.SummaryStatisticsFragment.Companion.TOP_SLICES import com.celzero.bravedns.ui.stats.CountryInsightsMapper import com.celzero.bravedns.ui.stats.StatsInsightsMath import com.celzero.bravedns.ui.stats.StatsViewMode import com.celzero.bravedns.util.Constants import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.UIUtils.getCountryNameFromFlag import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.util.Utilities.showToastUiCentered import com.celzero.bravedns.viewmodel.SummaryStatisticsViewModel -import androidx.lifecycle.LiveData -import androidx.paging.PagingData import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder -import android.widget.LinearLayout -import androidx.core.graphics.ColorUtils +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/WgNwStatsFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/WgNwStatsFragment.kt index 09f34b806..3d9c43306 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/WgNwStatsFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/WgNwStatsFragment.kt @@ -15,27 +15,27 @@ */ package com.celzero.bravedns.ui.fragment -import com.celzero.bravedns.util.Logger -import com.celzero.bravedns.util.Logger.LOG_TAG_UI import android.content.res.ColorStateList import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.WgNwStatsAdapter import com.celzero.bravedns.data.DataUsageSummary import com.celzero.bravedns.databinding.FragmentWgNwStatsBinding import com.celzero.bravedns.service.ProxyManager import com.celzero.bravedns.ui.activity.NetworkLogsActivity.Companion.RULES_SEARCH_ID_WIREGUARD +import com.celzero.bravedns.util.Logger +import com.celzero.bravedns.util.Logger.LOG_TAG_UI import com.celzero.bravedns.util.UIUtils import com.celzero.bravedns.util.Utilities import com.celzero.bravedns.viewmodel.WgNwActivityViewModel import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dev.androidbroadcast.vbpd.viewBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/app/src/play/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt b/app/src/play/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt index 7cca4f984..16bf7c03b 100644 --- a/app/src/play/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt +++ b/app/src/play/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt @@ -32,7 +32,7 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.GridLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding +import dev.androidbroadcast.vbpd.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.GooglePlaySubsAdapter import com.celzero.bravedns.databinding.FragmentRethinkPlusPremiumBinding diff --git a/app/src/website/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt b/app/src/website/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt index 7cca4f984..16bf7c03b 100644 --- a/app/src/website/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt +++ b/app/src/website/java/com/celzero/bravedns/ui/fragment/RethinkPlusFragment.kt @@ -32,7 +32,7 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.GridLayoutManager -import by.kirich1409.viewbindingdelegate.viewBinding +import dev.androidbroadcast.vbpd.viewBinding import com.celzero.bravedns.R import com.celzero.bravedns.adapter.GooglePlaySubsAdapter import com.celzero.bravedns.databinding.FragmentRethinkPlusPremiumBinding From 0fb62382b7f50fccb013d2cadc0f1fd2e656b530 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:19:38 +0330 Subject: [PATCH 07/17] Derive kotlin compiler language from kotlin version --- app/build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 05e98b074..7134714ba 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -396,7 +396,9 @@ android { kotlin { compilerOptions { - languageVersion.set(KotlinVersion.KOTLIN_2_3) + languageVersion.set( + KotlinVersion.fromVersion(libs.versions.kotlin.get().substringBeforeLast(".")) + ) jvmTarget.set(JvmTarget.JVM_17) freeCompilerArgs.addAll("-Xwarning-level=SENSELESS_COMPARISON:disabled") } From 231f60b3f8eb5d0a8362b1589d566892a159fb26 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:19:48 +0330 Subject: [PATCH 08/17] Use compile,min and target Sdk from lib.toml in benchmark module --- benchmark/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index 222892dec..63f43ae3d 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -4,11 +4,11 @@ plugins { android { namespace = "com.celzero.bravedns.benchmark" - compileSdk = 37 + compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { - minSdk = 23 - targetSdk = 37 + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } From acecc87a7edff7098072e5e769fb9543d86ee532 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:20:20 +0330 Subject: [PATCH 09/17] Move rest of the plugins to lib.toml --- app/build.gradle.kts | 6 +++--- benchmark/build.gradle.kts | 2 +- build.gradle.kts | 8 +++----- gradle/lib.toml | 7 ++++--- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7134714ba..59566d136 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,12 +5,12 @@ import java.util.Properties import java.lang.reflect.Method plugins { - id("com.android.application") - id("com.google.devtools.ksp") + alias(libs.plugins.androidApplication) + alias(libs.plugins.ksp) // rethink-tv fork: Compose Compiler plugin for the `tv` flavor's // Compose-for-TV UI. Safe to apply project-wide — phone variants // contain no @Composable and the plugin then no-ops. - id("org.jetbrains.kotlin.plugin.compose") + alias(libs.plugins.kotlinCompose) // To generate a BOM in CycloneDX format: // ./gradlew cyclonedxBom // id("org.cyclonedx.bom") version "3.2.4" diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index 63f43ae3d..af4dfec96 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.test") + alias(libs.plugins.androidTest) } android { diff --git a/build.gradle.kts b/build.gradle.kts index 45bbd6e43..33f7b4be1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,11 +8,6 @@ buildscript { mavenCentral() } dependencies { - classpath(libs.androidToolsBuildGradle) - classpath(libs.jetbrainsKotlinKotlinGradlePlugin) - // Required by the TV flavor's Compose UI. - classpath(libs.jetbrainsKotlinComposeCompilerGradlePlugin) - // add firebase plugins - will be conditionally applied in app/build.gradle val taskNames = gradle.startParameter.taskNames.joinToString(",").lowercase() val playBuild = taskNames.contains("play") @@ -34,6 +29,9 @@ buildscript { } plugins { + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.androidTest) apply false + alias(libs.plugins.kotlinCompose) apply false alias(libs.plugins.ksp) apply false } diff --git a/gradle/lib.toml b/gradle/lib.toml index 1f6adada2..0493f57a7 100644 --- a/gradle/lib.toml +++ b/gradle/lib.toml @@ -63,9 +63,6 @@ uiautomator = "2.3.0" ksp = "2.3.9" [libraries] -androidToolsBuildGradle = { module = "com.android.tools.build:gradle", version.ref = "agp" } -jetbrainsKotlinKotlinGradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -jetbrainsKotlinComposeCompilerGradlePlugin = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" } googleGmsGoogleServices = { module = "com.google.gms:google-services", version.ref = "googleServices" } googleFirebaseFirebaseCrashlyticsGradle = { module = "com.google.firebase:firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsGradle" } googleGuavaGuava = { module = "com.google.guava:guava", version.ref = "guava" } @@ -161,4 +158,8 @@ androidxBenchmarkBenchmarkMacroJunit4 = { module = "androidx.benchmark:benchmark androidxTestUiautomatorUiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" } [plugins] +androidApplication = { id = "com.android.application", version.ref = "agp" } +androidTest = { id = "com.android.test", version.ref = "agp" } +# Required by the TV flavor's Compose UI. +kotlinCompose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } From c61d302c2b9a258c77fa185d571d696569a42675 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:20:33 +0330 Subject: [PATCH 10/17] With built-in Kotlin, you don't need to set kotlin.compilerOptions.jvmTarget because its value defaults to android.compileOptions.targetCompatibility --- app/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 59566d136..b06626af6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -399,7 +399,6 @@ kotlin { languageVersion.set( KotlinVersion.fromVersion(libs.versions.kotlin.get().substringBeforeLast(".")) ) - jvmTarget.set(JvmTarget.JVM_17) freeCompilerArgs.addAll("-Xwarning-level=SENSELESS_COMPARISON:disabled") } } From c4a2779f9338ccc1a8f45d4f505e6cde8e2c9e02 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:20:59 +0330 Subject: [PATCH 11/17] android.useAndroidX is enabled by default in AGP 9.0.0+ --- gradle.properties | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 056abd8a8..665126765 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,10 +11,6 @@ org.gradle.jvmargs=-Xmx3g -Dfile.encoding=UTF-8 # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official # codeql needs more for the kotlin compiler From bb53b8fde1604c512120412ae7af5f91c01f59ed Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:21:08 +0330 Subject: [PATCH 12/17] Use configuration caching's stable counterpart --- gradle.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 665126765..9e7bfe518 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,7 +20,8 @@ kotlin.daemon.jvmargs=-Xmx3g # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true # Enable configuration cache -org.gradle.unsafe.configuration-cache=true +# https://docs.gradle.org/current/userguide/upgrading_version_8.html#cache_marking +org.gradle.configuration-cache=true org.gradle.caching=true android.nonFinalResIds=true # Version code for this module (70 for v058, 71 for play v058) From c48d7ec18229134c9ec4e554edbfceda3d5f5083 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:21:26 +0330 Subject: [PATCH 13/17] Apply code rabbit suggestion of rejecting invalid version code value --- app/build.gradle.kts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b06626af6..842e3fd19 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -113,24 +113,24 @@ val gitVersion = providers.exec { }.standardOutput.asText.get().trim() fun getVersionCode(): Int { - var code = 0 - try { - val envCode = System.getenv("VERSION_CODE") - if (!envCode.isNullOrEmpty()) { - code = envCode.toInt() - logger.info("env version code: $code") - } - } catch (ex: NumberFormatException) { - logger.info("missing env version code: ${ex.message}") - } - if (code == 0) { - code = project.providers.gradleProperty("VERSION_CODE").get().toIntOrNull() ?: 0 - logger.info("project properties version code: $code") + val envVersionCode = System.getenv("VERSION_CODE") + if (envVersionCode == null) { + logger.info("missing env version code") } - return code + val versionCodeValue = envVersionCode + ?: project.providers.gradleProperty("VERSION_CODE").orNull + ?: throw GradleException( + "VERSION_CODE is missing. Set it in the environment or as a Gradle property; it must be a positive integer." + ) + + return versionCodeValue.toIntOrNull()?.takeIf { it > 0 } + ?: throw GradleException( + "Invalid VERSION_CODE '$versionCodeValue': expected a positive integer greater than zero." + ) } val appVersionCode = getVersionCode() +logger.info("version code: $appVersionCode") try { if (keystorePropertiesFile.exists()) { From 24d728429a03960183f4b3b004175e12fdccce71 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:21:44 +0330 Subject: [PATCH 14/17] Restore logging functionality to before gradle.kts migration --- app/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 842e3fd19..1e4964b23 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -90,7 +90,7 @@ logger.info("gradle alphaBuild? $alphaBuild, should split? $shouldSplit") if (!deGoogled) { apply(plugin = "com.google.gms.google-services") apply(plugin = "com.google.firebase.crashlytics") - logger.info("app firebase plugins applied") + logger.warn("app firebase plugins applied") } else { logger.info("app firebase plugins SKIPPED (non-play build)") } @@ -205,10 +205,10 @@ android { splits { abi { if (!shouldSplit) { - logger.info("universal apk only (splits disabled)") + logger.warn("universal apk only (splits disabled)") isEnable = false } else { - logger.info("split apks and universal apk (splits enabled)") + logger.warn("split apks and universal apk (splits enabled)") isEnable = true reset() // comma-separated list of ABIs to generate apks for @@ -388,9 +388,9 @@ android { storePassword = tvKsStorePassphrase } buildTypes.getByName("release").signingConfig = tvRelease - println("rethink-tv: TV_RELEASE_KS_* env vars detected; 'release' build type will be signed with signingConfigs.tvRelease") + logger.warn("rethink-tv: TV_RELEASE_KS_* env vars detected; 'release' build type will be signed with signingConfigs.tvRelease") } else { - println("rethink-tv: TV_RELEASE_KS_* env vars NOT set; using the configured release signing config") + logger.warn("rethink-tv: TV_RELEASE_KS_* env vars NOT set; using the configured release signing config") } } From 76b7249703b23baca5fc9197ee3c9ba8a3c858ba Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:21:54 +0330 Subject: [PATCH 15/17] Register custom app build types lazily to avoid eager configuration --- app/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1e4964b23..a59768f9e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -220,7 +220,7 @@ android { } buildTypes { - getByName("release") { + release { // AGP 9.3 DSL: enables both code and resource optimization and // includes the default Android keep rules (equivalent to // proguard-android-optimize.txt, which the webview removal in #352 @@ -264,11 +264,11 @@ android { applicationIdSuffix = ".izzy" } } - create("leakCanary") { + register("leakCanary") { matchingFallbacks += listOf("debug") initWith(getByName("debug")) } - create("alpha") { + register("alpha") { // archive.is/y8uCB applicationIdSuffix = ".alpha" optimization { @@ -278,7 +278,7 @@ android { .takeIf { !System.getenv("ALPHA_KS_FILE").isNullOrEmpty() } resValue("string", "app_name", "Rethink(α)") } - create("releaseDebug") { + register("releaseDebug") { initWith(getByName("release")) // set explicitly; initWith may not copy the optimization block optimization { From 256c540b832731a836384c874054836b5a936acd Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 05:22:07 +0330 Subject: [PATCH 16/17] Configure plugin resolution repositories --- settings.gradle.kts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 7d9769ef6..81492cd22 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,17 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} + rootProject.name = "rethink" include(":app") include(":benchmark") From 7fdb5031860d113346aa1e05a9e24a6f1a2b9149 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 18 Oct 2026 11:50:47 +0330 Subject: [PATCH 17/17] Fix stale home-screen imports after rebase --- .../java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt b/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt index a06722d6b..184871d82 100644 --- a/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt +++ b/app/src/main/java/com/celzero/bravedns/ui/fragment/HomeScreenFragment.kt @@ -114,8 +114,6 @@ import com.celzero.bravedns.ui.activity.WgMainActivity import com.celzero.bravedns.ui.bottomsheet.HomeScreenSettingBottomSheet import com.celzero.bravedns.ui.bottomsheet.LogActivityIntervalBottomSheet import com.celzero.bravedns.ui.custom.AppHistogramView -import com.celzero.bravedns.ui.fragment.HomeScreenFragment.Companion.BORDER_FAST_ROTATION_MS -import com.celzero.bravedns.ui.fragment.HomeScreenFragment.Companion.BORDER_SLOW_ROTATION_MS import com.celzero.bravedns.ui.tour.GuidedTourManager import com.celzero.bravedns.ui.tour.TourOverlayController import com.celzero.bravedns.util.Constants