Skip to content
Snippets Groups Projects
Unverified Commit 949d4a59 authored by harambasicluka's avatar harambasicluka Committed by GitHub
Browse files

Feature: IsBackgroundJob Enabled UI (#208)


* Background work quick fix

* Formatting

* Background work improved

* Formatting

* Refactoring

* Refactoring

* Allow background data usage

* Added isBackgroundRestricted

* removed unused import

Co-authored-by: default avatarAlexander Alferov <a.alferov@sap.com>
Co-authored-by: default avatarJakob Möller <jakob.moeller@sap.com>
Co-authored-by: default avatarAlexanderAlferov <64849422+AlexanderAlferov@users.noreply.github.com>
parent 927e1f9a
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,6 @@ package de.rki.coronawarnapp.ui.main ...@@ -2,7 +2,6 @@ package de.rki.coronawarnapp.ui.main
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
...@@ -69,8 +68,7 @@ class MainActivity : AppCompatActivity() { ...@@ -69,8 +68,7 @@ class MainActivity : AppCompatActivity() {
super.onResume() super.onResume()
ConnectivityHelper.registerNetworkStatusCallback(this, callbackNetwork) ConnectivityHelper.registerNetworkStatusCallback(this, callbackNetwork)
ConnectivityHelper.registerBluetoothStatusCallback(this, callbackBluetooth) ConnectivityHelper.registerBluetoothStatusCallback(this, callbackBluetooth)
Log.d(TAG, "Background work is available: ${!ConnectivityHelper.isDataSaverEnabled(this)}") settingsViewModel.updateBackgroundJobEnabled(ConnectivityHelper.isBackgroundJobEnabled(this))
settingsViewModel.updateBackgroundJobEnabled(!ConnectivityHelper.isDataSaverEnabled(this))
scheduleWork() scheduleWork()
showDialogWithStacktraceIfPreviouslyCrashed() showDialogWithStacktraceIfPreviouslyCrashed()
} }
......
package de.rki.coronawarnapp.util package de.rki.coronawarnapp.util
import android.app.ActivityManager
import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothAdapter
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
...@@ -121,6 +122,20 @@ object ConnectivityHelper { ...@@ -121,6 +122,20 @@ object ConnectivityHelper {
} }
} }
/**
* Checks if background jobs are enabled
*
* @param context the context
*
* @return Boolean
*
* @see isDataSaverEnabled
* @see isBackgroundRestricted
*/
fun isBackgroundJobEnabled(context: Context): Boolean {
return !(isDataSaverEnabled(context) || isBackgroundRestricted(context))
}
/** /**
* For API level 24+ check if data saver is enabled * For API level 24+ check if data saver is enabled
* Else always return false * Else always return false
...@@ -131,13 +146,30 @@ object ConnectivityHelper { ...@@ -131,13 +146,30 @@ object ConnectivityHelper {
* *
* @see ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED * @see ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED
*/ */
fun isDataSaverEnabled(context: Context): Boolean { private fun isDataSaverEnabled(context: Context): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
connectivityManager.restrictBackgroundStatus != ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED connectivityManager.restrictBackgroundStatus != ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED
} else false } else false
} }
/**
* For API level 28+ check if background is restricted
* Else always return false
*
* @param context the context
*
* @return Boolean
*
* @see isBackgroundRestricted
*/
private fun isBackgroundRestricted(context: Context): Boolean {
val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
return activityManager.isBackgroundRestricted
} else return false
}
/** /**
* Get bluetooth enabled status. * Get bluetooth enabled status.
* *
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment