Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8b9b16c authored by Aayush Gupta's avatar Aayush Gupta
Browse files

Merge branch '125-o-disableMeteredNetworkUsage' into 'v1-oreo'

Disable Metered network usage in eDrive

See merge request !98
parents 07e97479 6086ab5b
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ public class ScreenOffReceiver extends BroadcastReceiver {
        if(intentAction == null){
            Log.e(TAG, "intent Action is null");
        } else if ( intent.getAction().equals(Intent.ACTION_SCREEN_OFF)
                && CommonUtils.haveNetworkConnexion( context ) ) {
                && CommonUtils.haveNetworkConnection( context ) ) {
            Log.d(TAG, "onReceive: ACTION_SCREEN_OFF");
            Intent cloudIntent = new Intent(context, ObserverService.class);
            context.startService(cloudIntent);
+1 −1
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ public class ObserverService extends Service implements OnRemoteOperationListene
        }

        //check for the case where intent has been launched by initializerService
        if (!CommonUtils.haveNetworkConnexion(this)) {
        if (!CommonUtils.haveNetworkConnection(this)) {
            Log.w(TAG, "There is no Internet connexion.");
            return super.onStartCommand( intent, flags, startId );
        }
+1 −2
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import foundation.e.drive.operations.UploadFileOperation;
import foundation.e.drive.utils.AppConstants;
import foundation.e.drive.utils.CommonUtils;
import foundation.e.drive.utils.DavClientProvider;
import foundation.e.drive.utils.ServiceExceptionHandler;

/**
 * @author Vincent Bourgmayer
@@ -110,7 +109,7 @@ public class OperationManagerService extends Service implements OnRemoteOperatio
            }
        }
        //start the new Job
        if( !mThreadWorkingState[threadIndex] && CommonUtils.haveNetworkConnexion( getApplicationContext() ) ) { //check if the thread corresponding to threadIndex isn't already working
        if( !mThreadWorkingState[threadIndex] && CommonUtils.haveNetworkConnection( getApplicationContext() ) ) { //check if the thread corresponding to threadIndex isn't already working

            ComparableOperation operation = this.mOperationsQueue.poll(); //return null if deque is empty
            if (operation != null) {
+17 −17
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import android.content.Context;
import android.media.MediaScannerConnection;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.Uri;
import android.util.Log;
@@ -195,29 +196,28 @@ public abstract class CommonUtils {
    }

    /**
     * Tell if there is internet connexion
     * Tell if there is internet connection
     *
     * @param context Activity or service which are calling this method
     * @return True if there is connexion, false either
     * @return True if there is connection, false either
     */
    public static boolean haveNetworkConnexion(Context context) {
        Log.i(TAG, "haveNetworkConnexion()");
        boolean haveConnectedWifi = false;
        boolean haveConnectedMobile = false;

        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();
        for (NetworkInfo ni : netInfo) {
            if (ni.getType()== ConnectivityManager.TYPE_WIFI) // Replaced the ni.getTypeName by ni.getType to make the test from ObserverServiceTest to work. But looks a better solution in all case
                if (ni.isConnected())
                    haveConnectedWifi = true;
            if (ni.getType()== ConnectivityManager.TYPE_MOBILE)
                if (ni.isConnected())
                    haveConnectedMobile = true;
    public static boolean haveNetworkConnection(Context context) {
        Log.i(TAG, "haveNetworkConnection()");

        ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
        NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());

        if (capabilities != null
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)) {
            return true;
        }
        return haveConnectedWifi || haveConnectedMobile;
        return false;
    }



    /**
     * Get mimetype of file from the file itself
     *