Loading core/api/system-current.txt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -4666,6 +4666,7 @@ package android.location { method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String); method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String); method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler); method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler); method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback); method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerProviderRequestListener(@NonNull java.util.concurrent.Executor, @NonNull android.location.provider.ProviderRequest.Listener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent); Loading @@ -4674,6 +4675,7 @@ package android.location { method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void unregisterProviderRequestListener(@NonNull android.location.provider.ProviderRequest.Listener); } } public final class LocationRequest implements android.os.Parcelable { public final class LocationRequest implements android.os.Parcelable { Loading Loading @@ -4823,6 +4825,10 @@ package android.location.provider { method @NonNull public android.location.provider.ProviderRequest.Builder setWorkSource(@NonNull android.os.WorkSource); method @NonNull public android.location.provider.ProviderRequest.Builder setWorkSource(@NonNull android.os.WorkSource); } } public static interface ProviderRequest.Listener { method public void onProviderRequestChanged(@NonNull String, @NonNull android.location.provider.ProviderRequest); } } } package android.media { package android.media { Loading location/java/android/location/ILocationManager.aidl +4 −0 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.location.LastLocationRequest; import android.location.Location; import android.location.Location; import android.location.LocationRequest; import android.location.LocationRequest; import android.location.LocationTime; import android.location.LocationTime; import android.location.provider.IProviderRequestListener; import android.location.provider.ProviderProperties; import android.location.provider.ProviderProperties; import android.os.Bundle; import android.os.Bundle; import android.os.ICancellationSignal; import android.os.ICancellationSignal; Loading Loading @@ -91,6 +92,9 @@ interface ILocationManager void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, @nullable String attributionTag); void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, @nullable String attributionTag); void removeGnssNavigationMessageListener(in IGnssNavigationMessageListener listener); void removeGnssNavigationMessageListener(in IGnssNavigationMessageListener listener); void addProviderRequestListener(in IProviderRequestListener listener); void removeProviderRequestListener(in IProviderRequestListener listener); int getGnssBatchSize(); int getGnssBatchSize(); void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, @nullable String attributionTag, @nullable String listenerId); void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, @nullable String attributionTag, @nullable String listenerId); void flushGnssBatch(); void flushGnssBatch(); Loading location/java/android/location/LocationManager.java +83 −0 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,10 @@ import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.location.provider.IProviderRequestListener; import android.location.provider.ProviderProperties; import android.location.provider.ProviderProperties; import android.location.provider.ProviderRequest; import android.location.provider.ProviderRequest.Listener; import android.os.Build; import android.os.Build; import android.os.Bundle; import android.os.Bundle; import android.os.CancellationSignal; import android.os.CancellationSignal; Loading Loading @@ -436,6 +439,9 @@ public class LocationManager { new GnssNavigationTransportManager(); new GnssNavigationTransportManager(); } } private static final ProviderRequestTransportManager sProviderRequestListeners = new ProviderRequestTransportManager(); private final Context mContext; private final Context mContext; private final ILocationManager mService; private final ILocationManager mService; Loading Loading @@ -2771,6 +2777,37 @@ public class LocationManager { GnssLazyLoader.sGnssNavigationListeners.removeListener(callback); GnssLazyLoader.sGnssNavigationListeners.removeListener(callback); } } /** * Registers a {@link ProviderRequest.Listener} to all providers. * * @param executor the executor that the callback runs on * @param listener the listener to register * @return {@code true} always * @hide */ @SystemApi @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) public boolean registerProviderRequestListener( @NonNull @CallbackExecutor Executor executor, @NonNull Listener listener) { sProviderRequestListeners.addListener(listener, new ProviderRequestTransport(executor, listener)); return true; } /** * Unregisters a {@link ProviderRequest.Listener}. * * @param listener the listener to remove. * @hide */ @SystemApi @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) public void unregisterProviderRequestListener( @NonNull Listener listener) { sProviderRequestListeners.removeListener(listener); } /** /** * Returns the batch size (in number of Location objects) that are supported by the batching * Returns the batch size (in number of Location objects) that are supported by the batching * interface. * interface. Loading Loading @@ -2960,6 +2997,22 @@ public class LocationManager { } } } } private static class ProviderRequestTransportManager extends ListenerTransportManager<ProviderRequestTransport> { @Override protected void registerTransport(ProviderRequestTransport transport) throws RemoteException { getService().addProviderRequestListener(transport); } @Override protected void unregisterTransport(ProviderRequestTransport transport) throws RemoteException { getService().removeProviderRequestListener(transport); } } private static class GetCurrentLocationTransport extends ILocationCallback.Stub implements private static class GetCurrentLocationTransport extends ILocationCallback.Stub implements ListenerExecutor, CancellationSignal.OnCancelListener { ListenerExecutor, CancellationSignal.OnCancelListener { Loading Loading @@ -3359,6 +3412,36 @@ public class LocationManager { } } } } private static class ProviderRequestTransport extends IProviderRequestListener.Stub implements ListenerTransport<ProviderRequest.Listener> { private final Executor mExecutor; private volatile @Nullable ProviderRequest.Listener mListener; ProviderRequestTransport(Executor executor, ProviderRequest.Listener listener) { Preconditions.checkArgument(executor != null, "invalid null executor"); Preconditions.checkArgument(listener != null, "invalid null callback"); mExecutor = executor; mListener = listener; } @Override public void unregister() { mListener = null; } @Override public @Nullable ProviderRequest.Listener getListener() { return mListener; } @Override public void onProviderRequestChanged(String provider, ProviderRequest request) { execute(mExecutor, listener -> listener.onProviderRequestChanged(provider, request)); } } private static class BatchedLocationCallbackWrapper implements LocationListener { private static class BatchedLocationCallbackWrapper implements LocationListener { private final BatchedLocationCallback mCallback; private final BatchedLocationCallback mCallback; Loading location/java/android/location/provider/IProviderRequestListener.aidl 0 → 100644 +26 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2021, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.location.provider; import android.location.provider.ProviderRequest; /** * {@hide} */ oneway interface IProviderRequestListener { void onProviderRequestChanged(String provider, in ProviderRequest request); } location/java/android/location/provider/ProviderRequest.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -53,6 +53,17 @@ public final class ProviderRequest implements Parcelable { private final boolean mLocationSettingsIgnored; private final boolean mLocationSettingsIgnored; private final WorkSource mWorkSource; private final WorkSource mWorkSource; /** * Listener to be invoked when a new request is set to the provider. */ public interface Listener { /** * Invoked when a new request is set. */ void onProviderRequestChanged(@NonNull String provider, @NonNull ProviderRequest request); } private ProviderRequest( private ProviderRequest( long intervalMillis, long intervalMillis, @Quality int quality, @Quality int quality, Loading Loading
core/api/system-current.txt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -4666,6 +4666,7 @@ package android.location { method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String); method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String); method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler); method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler); method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback); method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerProviderRequestListener(@NonNull java.util.concurrent.Executor, @NonNull android.location.provider.ProviderRequest.Listener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent); Loading @@ -4674,6 +4675,7 @@ package android.location { method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void unregisterProviderRequestListener(@NonNull android.location.provider.ProviderRequest.Listener); } } public final class LocationRequest implements android.os.Parcelable { public final class LocationRequest implements android.os.Parcelable { Loading Loading @@ -4823,6 +4825,10 @@ package android.location.provider { method @NonNull public android.location.provider.ProviderRequest.Builder setWorkSource(@NonNull android.os.WorkSource); method @NonNull public android.location.provider.ProviderRequest.Builder setWorkSource(@NonNull android.os.WorkSource); } } public static interface ProviderRequest.Listener { method public void onProviderRequestChanged(@NonNull String, @NonNull android.location.provider.ProviderRequest); } } } package android.media { package android.media { Loading
location/java/android/location/ILocationManager.aidl +4 −0 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.location.LastLocationRequest; import android.location.Location; import android.location.Location; import android.location.LocationRequest; import android.location.LocationRequest; import android.location.LocationTime; import android.location.LocationTime; import android.location.provider.IProviderRequestListener; import android.location.provider.ProviderProperties; import android.location.provider.ProviderProperties; import android.os.Bundle; import android.os.Bundle; import android.os.ICancellationSignal; import android.os.ICancellationSignal; Loading Loading @@ -91,6 +92,9 @@ interface ILocationManager void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, @nullable String attributionTag); void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, @nullable String attributionTag); void removeGnssNavigationMessageListener(in IGnssNavigationMessageListener listener); void removeGnssNavigationMessageListener(in IGnssNavigationMessageListener listener); void addProviderRequestListener(in IProviderRequestListener listener); void removeProviderRequestListener(in IProviderRequestListener listener); int getGnssBatchSize(); int getGnssBatchSize(); void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, @nullable String attributionTag, @nullable String listenerId); void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, @nullable String attributionTag, @nullable String listenerId); void flushGnssBatch(); void flushGnssBatch(); Loading
location/java/android/location/LocationManager.java +83 −0 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,10 @@ import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.location.provider.IProviderRequestListener; import android.location.provider.ProviderProperties; import android.location.provider.ProviderProperties; import android.location.provider.ProviderRequest; import android.location.provider.ProviderRequest.Listener; import android.os.Build; import android.os.Build; import android.os.Bundle; import android.os.Bundle; import android.os.CancellationSignal; import android.os.CancellationSignal; Loading Loading @@ -436,6 +439,9 @@ public class LocationManager { new GnssNavigationTransportManager(); new GnssNavigationTransportManager(); } } private static final ProviderRequestTransportManager sProviderRequestListeners = new ProviderRequestTransportManager(); private final Context mContext; private final Context mContext; private final ILocationManager mService; private final ILocationManager mService; Loading Loading @@ -2771,6 +2777,37 @@ public class LocationManager { GnssLazyLoader.sGnssNavigationListeners.removeListener(callback); GnssLazyLoader.sGnssNavigationListeners.removeListener(callback); } } /** * Registers a {@link ProviderRequest.Listener} to all providers. * * @param executor the executor that the callback runs on * @param listener the listener to register * @return {@code true} always * @hide */ @SystemApi @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) public boolean registerProviderRequestListener( @NonNull @CallbackExecutor Executor executor, @NonNull Listener listener) { sProviderRequestListeners.addListener(listener, new ProviderRequestTransport(executor, listener)); return true; } /** * Unregisters a {@link ProviderRequest.Listener}. * * @param listener the listener to remove. * @hide */ @SystemApi @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) public void unregisterProviderRequestListener( @NonNull Listener listener) { sProviderRequestListeners.removeListener(listener); } /** /** * Returns the batch size (in number of Location objects) that are supported by the batching * Returns the batch size (in number of Location objects) that are supported by the batching * interface. * interface. Loading Loading @@ -2960,6 +2997,22 @@ public class LocationManager { } } } } private static class ProviderRequestTransportManager extends ListenerTransportManager<ProviderRequestTransport> { @Override protected void registerTransport(ProviderRequestTransport transport) throws RemoteException { getService().addProviderRequestListener(transport); } @Override protected void unregisterTransport(ProviderRequestTransport transport) throws RemoteException { getService().removeProviderRequestListener(transport); } } private static class GetCurrentLocationTransport extends ILocationCallback.Stub implements private static class GetCurrentLocationTransport extends ILocationCallback.Stub implements ListenerExecutor, CancellationSignal.OnCancelListener { ListenerExecutor, CancellationSignal.OnCancelListener { Loading Loading @@ -3359,6 +3412,36 @@ public class LocationManager { } } } } private static class ProviderRequestTransport extends IProviderRequestListener.Stub implements ListenerTransport<ProviderRequest.Listener> { private final Executor mExecutor; private volatile @Nullable ProviderRequest.Listener mListener; ProviderRequestTransport(Executor executor, ProviderRequest.Listener listener) { Preconditions.checkArgument(executor != null, "invalid null executor"); Preconditions.checkArgument(listener != null, "invalid null callback"); mExecutor = executor; mListener = listener; } @Override public void unregister() { mListener = null; } @Override public @Nullable ProviderRequest.Listener getListener() { return mListener; } @Override public void onProviderRequestChanged(String provider, ProviderRequest request) { execute(mExecutor, listener -> listener.onProviderRequestChanged(provider, request)); } } private static class BatchedLocationCallbackWrapper implements LocationListener { private static class BatchedLocationCallbackWrapper implements LocationListener { private final BatchedLocationCallback mCallback; private final BatchedLocationCallback mCallback; Loading
location/java/android/location/provider/IProviderRequestListener.aidl 0 → 100644 +26 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2021, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.location.provider; import android.location.provider.ProviderRequest; /** * {@hide} */ oneway interface IProviderRequestListener { void onProviderRequestChanged(String provider, in ProviderRequest request); }
location/java/android/location/provider/ProviderRequest.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -53,6 +53,17 @@ public final class ProviderRequest implements Parcelable { private final boolean mLocationSettingsIgnored; private final boolean mLocationSettingsIgnored; private final WorkSource mWorkSource; private final WorkSource mWorkSource; /** * Listener to be invoked when a new request is set to the provider. */ public interface Listener { /** * Invoked when a new request is set. */ void onProviderRequestChanged(@NonNull String provider, @NonNull ProviderRequest request); } private ProviderRequest( private ProviderRequest( long intervalMillis, long intervalMillis, @Quality int quality, @Quality int quality, Loading