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 51705372e89537ec0ea7b7770637b9244ba1ed35..c6f27dd39b24048b0cd71a244cc1dce5ebfbdf0c 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 8571d005cbfcec3f171c3af493a029c005788732..73d34496a51a43c7a6e17e3327164ed1636ed4e0 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) + } } 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 f2907200fad013b69d98450d14be62fa2262d5ab..c6740739d7914d0f2caf370cfb813deae1b356aa 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 ) }