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

Commit ed36a343 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ignore PSDS download request if download is in progress" into main

parents ca66dca8 1c9b9bab
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -295,6 +295,8 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
    private final PowerManager.WakeLock mDownloadPsdsWakeLock;
    private final PowerManager.WakeLock mDownloadPsdsWakeLock;
    @GuardedBy("mLock")
    @GuardedBy("mLock")
    private final Set<Integer> mPendingDownloadPsdsTypes = new HashSet<>();
    private final Set<Integer> mPendingDownloadPsdsTypes = new HashSet<>();
    @GuardedBy("mLock")
    private final Set<Integer> mDownloadInProgressPsdsTypes = new HashSet<>();


    /**
    /**
     * Properties loaded from PROPERTIES_FILE.
     * Properties loaded from PROPERTIES_FILE.
@@ -767,8 +769,16 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
            return;
            return;
        }
        }
        synchronized (mLock) {
        synchronized (mLock) {
            if (mDownloadInProgressPsdsTypes.contains(psdsType)) {
                if (DEBUG) {
                    Log.d(TAG,
                            "PSDS type " + psdsType + " download in progress. Ignore the request.");
                }
                return;
            }
            // hold wake lock while task runs
            // hold wake lock while task runs
            mDownloadPsdsWakeLock.acquire(DOWNLOAD_PSDS_DATA_TIMEOUT_MS);
            mDownloadPsdsWakeLock.acquire(DOWNLOAD_PSDS_DATA_TIMEOUT_MS);
            mDownloadInProgressPsdsTypes.add(psdsType);
        }
        }
        Log.i(TAG, "WakeLock acquired by handleDownloadPsdsData()");
        Log.i(TAG, "WakeLock acquired by handleDownloadPsdsData()");
        Executors.newSingleThreadExecutor().execute(() -> {
        Executors.newSingleThreadExecutor().execute(() -> {
@@ -818,6 +828,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
                    Log.e(TAG, "WakeLock expired before release in "
                    Log.e(TAG, "WakeLock expired before release in "
                            + "handleDownloadPsdsData()");
                            + "handleDownloadPsdsData()");
                }
                }
                mDownloadInProgressPsdsTypes.remove(psdsType);
            }
            }
        });
        });
    }
    }