Merge "Fix incorrect error log message in GnssVisibilityControl class" into qt-dev
am: 5bcdc825ed
Change-Id: I12fd7c9fd636aaa6b9338b6eb82d1a44e5cf39fb
This commit is contained in:
@@ -288,6 +288,18 @@ class GnssVisibilityControl {
|
||||
return "<Unknown>";
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isRequestAccepted() {
|
||||
return mResponseType != NfwNotification.NFW_RESPONSE_TYPE_REJECTED;
|
||||
}
|
||||
|
||||
private boolean isRequestAttributedToProxyApp() {
|
||||
return !TextUtils.isEmpty(mProxyAppPackageName);
|
||||
}
|
||||
|
||||
private boolean isEmergencyRequestNotification() {
|
||||
return mInEmergencyMode && !isRequestAttributedToProxyApp();
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePermissionsChanged(int uid) {
|
||||
@@ -376,20 +388,37 @@ class GnssVisibilityControl {
|
||||
private void handleNfwNotification(NfwNotification nfwNotification) {
|
||||
if (DEBUG) Log.d(TAG, "Non-framework location access notification: " + nfwNotification);
|
||||
|
||||
final String proxyAppPackageName = nfwNotification.mProxyAppPackageName;
|
||||
Boolean isLocationPermissionEnabled = mProxyAppToLocationPermissions.get(
|
||||
proxyAppPackageName);
|
||||
boolean isLocationRequestAccepted =
|
||||
nfwNotification.mResponseType != NfwNotification.NFW_RESPONSE_TYPE_REJECTED;
|
||||
boolean isPermissionMismatched;
|
||||
if (isLocationPermissionEnabled == null) {
|
||||
isPermissionMismatched = isLocationRequestAccepted;
|
||||
} else {
|
||||
isPermissionMismatched = (isLocationPermissionEnabled != isLocationRequestAccepted);
|
||||
if (nfwNotification.isEmergencyRequestNotification()) {
|
||||
handleEmergencyNfwNotification(nfwNotification);
|
||||
return;
|
||||
}
|
||||
|
||||
final String proxyAppPackageName = nfwNotification.mProxyAppPackageName;
|
||||
final Boolean isLocationPermissionEnabled = mProxyAppToLocationPermissions.get(
|
||||
proxyAppPackageName);
|
||||
final boolean isLocationRequestAccepted = nfwNotification.isRequestAccepted();
|
||||
final boolean isPermissionMismatched =
|
||||
(isLocationPermissionEnabled == null) ? isLocationRequestAccepted
|
||||
: (isLocationPermissionEnabled != isLocationRequestAccepted);
|
||||
logEvent(nfwNotification, isPermissionMismatched);
|
||||
|
||||
if (TextUtils.isEmpty(proxyAppPackageName)) {
|
||||
if (!nfwNotification.isRequestAttributedToProxyApp()) {
|
||||
// Handle cases where GNSS HAL implementation correctly rejected NFW location request.
|
||||
// 1. GNSS HAL implementation doesn't provide location to any NFW location use cases.
|
||||
// There is no Location Attribution App configured in the framework.
|
||||
// 2. GNSS HAL implementation doesn't provide location to some NFW location use cases.
|
||||
// Location Attribution Apps are configured only for the supported NFW location
|
||||
// use cases. All other use cases which are not supported (and always rejected) by
|
||||
// the GNSS HAL implementation will have proxyAppPackageName set to empty string.
|
||||
if (!isLocationRequestAccepted) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Non-framework location request rejected. ProxyAppPackageName field"
|
||||
+ " is not set in the notification: " + nfwNotification + ". Number of"
|
||||
+ " configured proxy apps: " + mProxyAppToLocationPermissions.size());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Log.e(TAG, "ProxyAppPackageName field is not set. AppOps service not notified "
|
||||
+ "for non-framework location access notification: " + nfwNotification);
|
||||
return;
|
||||
@@ -423,6 +452,16 @@ class GnssVisibilityControl {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleEmergencyNfwNotification(NfwNotification nfwNotification) {
|
||||
boolean isPermissionMismatched =
|
||||
(nfwNotification.mResponseType == NfwNotification.NFW_RESPONSE_TYPE_REJECTED);
|
||||
if (isPermissionMismatched) {
|
||||
Log.e(TAG, "Emergency non-framework location request incorrectly rejected."
|
||||
+ " Notification: " + nfwNotification);
|
||||
}
|
||||
logEvent(nfwNotification, isPermissionMismatched);
|
||||
}
|
||||
|
||||
private void logEvent(NfwNotification notification, boolean isPermissionMismatched) {
|
||||
StatsLog.write(StatsLog.GNSS_NFW_NOTIFICATION_REPORTED,
|
||||
notification.mProxyAppPackageName,
|
||||
|
||||
Reference in New Issue
Block a user