Loading services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading Loading @@ -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(() -> { Loading Loading @@ -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); } } }); }); } } Loading Loading
services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading Loading @@ -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(() -> { Loading Loading @@ -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); } } }); }); } } Loading