Merge "Fix NPE in LocationProviderManager" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
93f7083eab
@@ -461,6 +461,12 @@ public class LocationProviderManager extends
|
|||||||
return LocationProviderManager.this;
|
return LocationProviderManager.this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GuardedBy("mLock")
|
||||||
|
final boolean onProviderPropertiesChanged() {
|
||||||
|
onHighPowerUsageChanged();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@GuardedBy("mLock")
|
@GuardedBy("mLock")
|
||||||
private void onHighPowerUsageChanged() {
|
private void onHighPowerUsageChanged() {
|
||||||
boolean isUsingHighPower = isUsingHighPower();
|
boolean isUsingHighPower = isUsingHighPower();
|
||||||
@@ -485,9 +491,14 @@ public class LocationProviderManager extends
|
|||||||
Preconditions.checkState(Thread.holdsLock(mLock));
|
Preconditions.checkState(Thread.holdsLock(mLock));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProviderProperties properties = getProperties();
|
||||||
|
if (properties == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return isActive()
|
return isActive()
|
||||||
&& getRequest().getIntervalMillis() < MAX_HIGH_POWER_INTERVAL_MS
|
&& getRequest().getIntervalMillis() < MAX_HIGH_POWER_INTERVAL_MS
|
||||||
&& getProperties().getPowerUsage() == ProviderProperties.POWER_USAGE_HIGH;
|
&& properties.getPowerUsage() == ProviderProperties.POWER_USAGE_HIGH;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GuardedBy("mLock")
|
@GuardedBy("mLock")
|
||||||
@@ -2277,6 +2288,10 @@ public class LocationProviderManager extends
|
|||||||
onEnabledChanged(UserHandle.USER_ALL);
|
onEnabledChanged(UserHandle.USER_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(oldState.properties, newState.properties)) {
|
||||||
|
updateRegistrations(Registration::onProviderPropertiesChanged);
|
||||||
|
}
|
||||||
|
|
||||||
if (mOnLocationTagsChangeListener != null) {
|
if (mOnLocationTagsChangeListener != null) {
|
||||||
if (!oldState.extraAttributionTags.equals(newState.extraAttributionTags)
|
if (!oldState.extraAttributionTags.equals(newState.extraAttributionTags)
|
||||||
|| !Objects.equals(oldState.identity, newState.identity)) {
|
|| !Objects.equals(oldState.identity, newState.identity)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user