package com.android.storagemanager.automatic; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkInfo; import android.os.BatteryManager; import android.os.PowerManager; import android.provider.Settings; /** * Utility class to check the status of some preconditions that are used by * {@link DownloadsBackupJobService} and {@link AutomaticStorageManagementJobService}. */ public class JobPreconditions { public static boolean isNetworkMetered(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { return connectivityManager.isActiveNetworkMetered(); } return true; } public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { for (Network network : connectivityManager.getAllNetworks()) { NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network); if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) { return true; } } } return false; } public static boolean isCharging(Context context) { BatteryManager batteryManager = (BatteryManager) context.getSystemService( Context.BATTERY_SERVICE); if (batteryManager != null) { return batteryManager.isCharging(); } return false; } public static boolean isIdle(Context context) { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); if (powerManager != null) { return powerManager.isDeviceIdleMode(); } return false; } }