From 8c1f3e3a6d0bd2f190d34585b8b1c286f7c5b604 Mon Sep 17 00:00:00 2001 From: Saalim Quadri Date: Tue, 23 Dec 2025 15:10:33 +0530 Subject: [PATCH 1/2] feat: Respect unmetered connections as we should Signed-off-by: Saalim Quadri --- app/src/main/java/foundation/e/apps/data/DownloadManager.kt | 6 ++++++ .../e/apps/data/preference/AppLoungePreference.kt | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/app/src/main/java/foundation/e/apps/data/DownloadManager.kt b/app/src/main/java/foundation/e/apps/data/DownloadManager.kt index 51705372e..c6f27dd39 100644 --- a/app/src/main/java/foundation/e/apps/data/DownloadManager.kt +++ b/app/src/main/java/foundation/e/apps/data/DownloadManager.kt @@ -24,6 +24,7 @@ import android.net.Uri import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.OpenForTesting import foundation.e.apps.R +import foundation.e.apps.data.preference.AppLoungePreference import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -46,6 +47,7 @@ class DownloadManager @Inject constructor( private val downloadManager: DownloadManager, @Named("cacheDir") private val cacheDir: String, private val downloadManagerQuery: DownloadManager.Query, + private val appLoungePreference: AppLoungePreference, ) { private val downloadsMaps = HashMap() @@ -79,6 +81,10 @@ class DownloadManager @Inject constructor( val request = DownloadManager.Request(Uri.parse(url)) .setTitle(context.getString(R.string.downloading)) .setDestinationUri(Uri.fromFile(downloadFile)) + if (appLoungePreference.isOnlyUnmeteredNetworkEnabled()) { + // Set to true by default for Download requests + request.setAllowedOverMetered(false) + } downloadId = downloadManager.enqueue(request) } catch (e: java.lang.NullPointerException) { Timber.e(e, "Url: $url; downloadFilePath: ${downloadFile.absolutePath}") diff --git a/app/src/main/java/foundation/e/apps/data/preference/AppLoungePreference.kt b/app/src/main/java/foundation/e/apps/data/preference/AppLoungePreference.kt index 8571d005c..73d34496a 100644 --- a/app/src/main/java/foundation/e/apps/data/preference/AppLoungePreference.kt +++ b/app/src/main/java/foundation/e/apps/data/preference/AppLoungePreference.kt @@ -120,4 +120,8 @@ class AppLoungePreference @Inject constructor( putBoolean(context.getString(R.string.anonymous_update_migration_completed), true) } } + + fun isOnlyUnmeteredNetworkEnabled(): Boolean { + return preferenceManager.getBoolean(context.getString(R.string.only_unmetered_network), true) + } } -- GitLab From 2fb59ca6fee258cd9781db26195796d9847e5560 Mon Sep 17 00:00:00 2001 From: Saalim Quadri Date: Thu, 25 Dec 2025 19:16:41 +0530 Subject: [PATCH 2/2] feat: Keep background updates only on unmetered network Signed-off-by: Saalim Quadri --- .../java/foundation/e/apps/install/updates/UpdatesWorker.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt index f2907200f..c6740739d 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt @@ -52,7 +52,7 @@ class UpdatesWorker @AssistedInject constructor( private var shouldShowNotification = true private var automaticInstallEnabled = true - private var onlyOnUnmeteredNetwork = false + private var onlyOnUnmeteredNetwork = true private var isAutoUpdate = true // indicates it is auto update or user initiated update private var retryCount = 0 @@ -245,7 +245,7 @@ class UpdatesWorker @AssistedInject constructor( applicationContext.getString( R.string.only_unmetered_network ), - false + true ) } -- GitLab