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

Commit 12032c58 authored by Vincent Bourgmayer's avatar Vincent Bourgmayer
Browse files

Update CommonUtils.haveNetworkConnection(Context) to use new provider

- Update CommonUtils.haveNetworkConnection(Context) to CommonUtils.haveNetworkConnection(Context, Account)
- Update ObserverService, CreateRemoteFolderWorker & SynchronizationService to pass account when calling CommonUtils.haveNetworkConnection
parent d1266f32
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ public class ObserverService extends Service implements OnRemoteOperationListene
        }

        //check for the case where intent has been launched by initializerService
        if (!CommonUtils.haveNetworkConnection(this)) {
        if (!CommonUtils.haveNetworkConnection(this, mAccount)) {
            Log.w(TAG, "There is no Internet connexion.");
            return super.onStartCommand( intent, flags, startId );
        }
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ public class SynchronizationService extends Service implements OnRemoteOperation

    private void startWorker(int threadIndex){
        if (syncedRequestQueue.isEmpty()) return;
        if (!threadWorkingState[threadIndex] && CommonUtils.haveNetworkConnection(getApplicationContext())) { //check if the thread corresponding to threadIndex isn't already working
        if (!threadWorkingState[threadIndex] && CommonUtils.haveNetworkConnection(getApplicationContext(), account)) { //check if the thread corresponding to threadIndex isn't already working

            final SyncRequest request = this.syncedRequestQueue.poll(); //return null if deque is empty

+8 −4
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import foundation.e.drive.work.FirstStartWorker;
import foundation.e.drive.work.FullScanWorker;

import static foundation.e.drive.utils.AppConstants.MEDIASYNC_PROVIDER_AUTHORITY;
import static foundation.e.drive.utils.AppConstants.METERED_NETWORK_ALLOWED_AUTHORITY;
import static foundation.e.drive.utils.AppConstants.SETTINGSYNC_PROVIDER_AUTHORITY;
import static foundation.e.drive.work.CreateRemoteFolderWorker.DATA_KEY_ENABLE;
import static foundation.e.drive.work.CreateRemoteFolderWorker.DATA_KEY_ID;
@@ -214,16 +215,19 @@ public abstract class CommonUtils {
     * @param context Activity or service which are calling this method
     * @return True if there is connection, false either
     */
    public static boolean haveNetworkConnection(Context context) {
    public static boolean haveNetworkConnection(Context context, Account account) {
        Log.i(TAG, "haveNetworkConnection()");

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

        final boolean meteredNetworkAllowed = ContentResolver.getSyncAutomatically(account, METERED_NETWORK_ALLOWED_AUTHORITY);

        if (capabilities != null
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)) {
                && (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
                    || meteredNetworkAllowed)) {
            return true;
        }
        return false;
+5 −5
Original line number Diff line number Diff line
@@ -55,17 +55,17 @@ public class CreateRemoteFolderWorker extends Worker {
    @Override
    public Result doWork() {
        final Context context = getApplicationContext();
        if (!CommonUtils.haveNetworkConnection(context)) {
            Log.e(TAG, "Can't create remote folder because there is no unmetered connexion");
            return Result.retry();
        }

        final Account account = getAccount();
        if (account == null) {
            Log.e(TAG, "Can't get valid account: stop everything");
            return Result.failure();
        }

        if (!CommonUtils.haveNetworkConnection(context, account)) {
            Log.e(TAG, "Can't create remote folder because there is no usable connection");
            return Result.retry();
        }

        final SyncedFolder syncedFolder = getSyncedFolderFromData();
        Log.d(TAG, "doWork() for :"+syncedFolder.getLocalFolder());
        final File folder = new File(syncedFolder.getLocalFolder() );