bugfix:workrecord

Signed-off-by: 李文龙 <liwenlong22@huawei.com>
This commit is contained in:
李文龙 2024-09-19 11:53:28 +08:00
parent 412924c4f0
commit 41c7909c5a
9 changed files with 11 additions and 29 deletions

View File

@ -33,6 +33,7 @@ local_base_sources = [
"$LOCATION_COMMON_DIR/source/request.cpp",
"$LOCATION_COMMON_DIR/source/sa_load_with_statistic.cpp",
"$LOCATION_COMMON_DIR/source/ui_extension_ability_connection.cpp",
"$LOCATION_COMMON_DIR/source/work_record_statistic.cpp",
"$LOCATION_ROOT_DIR/frameworks/base_module/source/location.cpp",
"$LOCATION_ROOT_DIR/frameworks/base_module/source/request_config.cpp",
"$LOCATION_ROOT_DIR/frameworks/base_module/source/satellite_status.cpp",

View File

@ -23,7 +23,7 @@
"*Location*WriteAppLocatingStateEvent*";
"*ExecuteHookWhenAddWorkRecord*";
"*LOCATOR_SA_LOCATION_PERMISSION_CHECK*";
"*WorkRecordStatistic*";
local:
*;
};

View File

@ -33,7 +33,6 @@ if (location_feature_with_gnss) {
"$LOCATION_LOCATOR_ROOT/source/location_config_manager.cpp",
"$LOCATION_LOCATOR_ROOT/source/subability_common.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record_statistic.cpp",
]
ohos_shared_library("lbsservice_gnss") {

View File

@ -42,7 +42,6 @@ local_base_sources = [
"$SUBSYSTEM_DIR/location_locator/locator/source/request_manager.cpp",
"$SUBSYSTEM_DIR/location_locator/locator/source/subability_common.cpp",
"$SUBSYSTEM_DIR/location_locator/locator/source/work_record.cpp",
"$SUBSYSTEM_DIR/location_locator/locator/source/work_record_statistic.cpp",
]
ohos_shared_library("lbsservice_locator") {

View File

@ -1030,19 +1030,12 @@ bool LocatorAbility::NeedReportCacheLocation(const std::shared_ptr<Request>& req
}
callback->OnLocationReport(cacheLocation);
PrivacyKit::StopUsingPermission(request->GetTokenId(), ACCESS_APPROXIMATELY_LOCATION);
if (locatorHandler_ != nullptr &&
locatorHandler_->SendHighPriorityEvent(EVENT_UPDATE_LASTLOCATION_REQUESTNUM, 0, 1)) {
LBSLOGD(LOCATOR, "%{public}s: EVENT_UPDATE_LASTLOCATION_REQUESTNUM Send Success", __func__);
}
UpdateLastLocationRequestNum();
return true;
}
} else if (!IsSingleRequest(request->GetRequestConfig()) && IsCacheVaildScenario(request->GetRequestConfig())) {
auto cacheLocation = reportManager_->GetCacheLocation(request);
if (cacheLocation != nullptr && callback != nullptr) {
auto workRecordStatistic = WorkRecordStatistic::GetInstance();
if (!workRecordStatistic->Update("CacheLocation", 1)) {
LBSLOGE(LOCATOR, "%{public}s line:%{public}d workRecordStatistic::Update failed", __func__, __LINE__);
}
// add location permission using record
int ret = UpdatePermissionUsedRecord(request->GetTokenId(), ACCESS_APPROXIMATELY_LOCATION,
request->GetPermUsedType(), 1, 0);
@ -1096,10 +1089,6 @@ LocationErrCode LocatorAbility::GetCacheLocation(std::unique_ptr<Location>& loc,
return ERRCODE_SERVICE_UNAVAILABLE;
}
auto lastLocation = reportManager_->GetLastLocation();
if (locatorHandler_ != nullptr &&
locatorHandler_->SendHighPriorityEvent(EVENT_UPDATE_LASTLOCATION_REQUESTNUM, 0, 1)) {
LBSLOGD(LOCATOR, "%{public}s: EVENT_UPDATE_LASTLOCATION_REQUESTNUM Send Success", __func__);
}
std::unique_ptr<RequestConfig> requestConfig = std::make_unique<RequestConfig>();
sptr<ILocatorCallback> callback;
std::shared_ptr<Request> request = std::make_shared<Request>(requestConfig, callback, identity);
@ -1839,12 +1828,10 @@ void LocatorHandler::GetCachedLocationSuccess(const AppExecFwk::InnerEvent::Poin
Security::AccessToken::AccessTokenKit::GetPermissionUsedType(tokenId, ACCESS_APPROXIMATELY_LOCATION);
auto locatorAbility = LocatorAbility::GetInstance();
int ret;
if (locatorAbility != nullptr) {
locatorAbility->UpdateLastLocationRequestNum();
ret = locatorAbility->UpdatePermissionUsedRecord(tokenId, ACCESS_APPROXIMATELY_LOCATION,
static_cast<int>(type), 1, 0);
LBSLOGD(LOCATOR, "UpdatePermissionUsedRecord, ret=%{public}d", ret);
}
locatorAbility->UpdateLastLocationRequestNum();
ret = locatorAbility->UpdatePermissionUsedRecord(tokenId, ACCESS_APPROXIMATELY_LOCATION,
static_cast<int>(type), 1, 0);
LBSLOGD(LOCATOR, "UpdatePermissionUsedRecord, ret=%{public}d", ret);
ret = PrivacyKit::StopUsingPermission(tokenId, ACCESS_APPROXIMATELY_LOCATION);
LBSLOGD(LOCATOR, "StopUsingPermission, ret=%{public}d", ret);
}
@ -1860,12 +1847,10 @@ void LocatorHandler::GetCachedLocationFailed(const AppExecFwk::InnerEvent::Point
Security::AccessToken::AccessTokenKit::GetPermissionUsedType(tokenId, ACCESS_APPROXIMATELY_LOCATION);
auto locatorAbility = LocatorAbility::GetInstance();
int ret;
if (locatorAbility != nullptr) {
locatorAbility->UpdateLastLocationRequestNum();
ret = locatorAbility->UpdatePermissionUsedRecord(tokenId, ACCESS_APPROXIMATELY_LOCATION,
static_cast<int>(type), 0, 1);
LBSLOGD(LOCATOR, "UpdatePermissionUsedRecord, ret=%{public}d", ret);
}
locatorAbility->UpdateLastLocationRequestNum();
ret = locatorAbility->UpdatePermissionUsedRecord(tokenId, ACCESS_APPROXIMATELY_LOCATION,
static_cast<int>(type), 0, 1);
LBSLOGD(LOCATOR, "UpdatePermissionUsedRecord, ret=%{public}d", ret);
ret = PrivacyKit::StopUsingPermission(tokenId, ACCESS_APPROXIMATELY_LOCATION);
LBSLOGD(LOCATOR, "StopUsingPermission, ret=%{public}d", ret);
}

View File

@ -18,7 +18,6 @@ local_base_sources = [
"$LOCATION_LOCATOR_ROOT/source/location_config_manager.cpp",
"$LOCATION_LOCATOR_ROOT/source/subability_common.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record_statistic.cpp",
"$LOCATION_NETWORK_ROOT/source/network_ability.cpp",
"$LOCATION_NETWORK_ROOT/source/network_ability_skeleton.cpp",
"$LOCATION_NETWORK_ROOT/source/network_callback_host.cpp",

View File

@ -17,7 +17,6 @@ import("//build/ohos.gni")
local_base_sources = [
"$LOCATION_LOCATOR_ROOT/source/subability_common.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record.cpp",
"$LOCATION_LOCATOR_ROOT/source/work_record_statistic.cpp",
"$LOCATION_PASSIVE_ROOT/source/passive_ability.cpp",
"$LOCATION_PASSIVE_ROOT/source/passive_ability_skeleton.cpp",
]