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

Commit c5706f65 authored by Wei Wang's avatar Wei Wang
Browse files

Add a wakelock timeout when downloading xtra data for GNSS.

Test: manual

Bug:36973866
Change-Id: Ia7168f313abebbf3c5c4fc26567ed914f1987a91
parent 0c1b4769
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -288,6 +288,9 @@ public class GnssLocationProvider implements LocationProviderInterface {
    // current setting - 4 hours
    private static final long MAX_RETRY_INTERVAL = 4*60*60*1000;

    // Timeout when holding wakelocks for downloading XTRA data.
    private static final long DOWNLOAD_XTRA_DATA_TIMEOUT_MS = 60 * 1000;

    private BackOff mNtpBackOff = new BackOff(RETRY_INTERVAL, MAX_RETRY_INTERVAL);
    private BackOff mXtraBackOff = new BackOff(RETRY_INTERVAL, MAX_RETRY_INTERVAL);

@@ -986,7 +989,7 @@ public class GnssLocationProvider implements LocationProviderInterface {
        mDownloadXtraDataPending = STATE_DOWNLOADING;

        // hold wake lock while task runs
        mWakeLock.acquire();
        mWakeLock.acquire(DOWNLOAD_XTRA_DATA_TIMEOUT_MS);
        Log.i(TAG, "WakeLock acquired by handleDownloadXtraData()");
        AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
            @Override
@@ -1009,7 +1012,11 @@ public class GnssLocationProvider implements LocationProviderInterface {
                }

                // release wake lock held by task
                if (mWakeLock.isHeld()) {
                    mWakeLock.release();
                } else {
                    Log.e(TAG, "WakeLock expired before release in handleDownloadXtraData()");
                }
                Log.i(TAG, "WakeLock released by handleDownloadXtraData()");
            }
        });