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

Commit a8050878 authored by Shreyas Basarge's avatar Shreyas Basarge
Browse files

Add onNetwrokActive listener to JobScheduler

ConncetivityControlled now listens for
onNetworkActive events.

Bug: 24919110
Change-Id: I4fc74b7f6353128e2fab5fcf88a5a1a78572a1e2
parent 8c0fe42f
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -47,6 +47,7 @@ public class ConnectivityController extends StateController implements
    private final List<JobStatus> mTrackedJobs = new LinkedList<JobStatus>();
    private final List<JobStatus> mTrackedJobs = new LinkedList<JobStatus>();
    private final BroadcastReceiver mConnectivityChangedReceiver =
    private final BroadcastReceiver mConnectivityChangedReceiver =
            new ConnectivityChangedReceiver();
            new ConnectivityChangedReceiver();
    ConnectivityManager mConnectivityManager;
    /** Singleton. */
    /** Singleton. */
    private static ConnectivityController mSingleton;
    private static ConnectivityController mSingleton;
    private static Object sCreationLock = new Object();
    private static Object sCreationLock = new Object();
@@ -73,6 +74,8 @@ public class ConnectivityController extends StateController implements
                mConnectivityChangedReceiver, UserHandle.ALL, intentFilter, null, null);
                mConnectivityChangedReceiver, UserHandle.ALL, intentFilter, null, null);
        ConnectivityService cs =
        ConnectivityService cs =
                (ConnectivityService)ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
                (ConnectivityService)ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
        mConnectivityManager = (ConnectivityManager)
                mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cs != null) {
        if (cs != null) {
            if (cs.getActiveNetworkInfo() != null) {
            if (cs.getActiveNetworkInfo() != null) {
                mNetworkConnected = cs.getActiveNetworkInfo().isConnected();
                mNetworkConnected = cs.getActiveNetworkInfo().isConnected();
@@ -85,6 +88,10 @@ public class ConnectivityController extends StateController implements
    public void maybeStartTrackingJob(JobStatus jobStatus, JobStatus lastJob) {
    public void maybeStartTrackingJob(JobStatus jobStatus, JobStatus lastJob) {
        if (jobStatus.hasConnectivityConstraint() || jobStatus.hasUnmeteredConstraint()) {
        if (jobStatus.hasConnectivityConstraint() || jobStatus.hasUnmeteredConstraint()) {
            synchronized (mTrackedJobs) {
            synchronized (mTrackedJobs) {
                // Register network active listener when the queue is about to become non-empty.
                if (mTrackedJobs.isEmpty()) {
                    mConnectivityManager.addDefaultNetworkActiveListener(this);
                }
                jobStatus.connectivityConstraintSatisfied.set(mNetworkConnected);
                jobStatus.connectivityConstraintSatisfied.set(mNetworkConnected);
                jobStatus.unmeteredConstraintSatisfied.set(mNetworkUnmetered);
                jobStatus.unmeteredConstraintSatisfied.set(mNetworkUnmetered);
                mTrackedJobs.add(jobStatus);
                mTrackedJobs.add(jobStatus);
@@ -97,6 +104,9 @@ public class ConnectivityController extends StateController implements
        if (jobStatus.hasConnectivityConstraint() || jobStatus.hasUnmeteredConstraint()) {
        if (jobStatus.hasConnectivityConstraint() || jobStatus.hasUnmeteredConstraint()) {
            synchronized (mTrackedJobs) {
            synchronized (mTrackedJobs) {
                mTrackedJobs.remove(jobStatus);
                mTrackedJobs.remove(jobStatus);
                if (mTrackedJobs.isEmpty()) {
                    mConnectivityManager.removeDefaultNetworkActiveListener(this);
                }
            }
            }
        }
        }
    }
    }