From: luozheng <1732036298@qq.com> Date: Tue, 10 Dec 2024 02:57:08 +0000 (+0800) Subject: 优化applist的拨号盘算法,减少重复计算。 X-Git-Tag: v1.3.113-repair_tp~143^2~11 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=2530106ca6c0f333093e4a9d71934b3fe3533f69;p=mirrors%2FFD230.git 优化applist的拨号盘算法,减少重复计算。 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp index e72f7f969..1f4754958 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp @@ -586,31 +586,42 @@ static void native_app_position_init(UIImageView ** CircleListAPP,int CircleList if(startangle > 0 ) { int numToChange = startangle / 30; - for (int i = 1; i <= numToChange; i++) + int cnt = 0; + for (int i = numToChange - 1; i >= 0; i--) { + if(cnt >= 12) //优化算法,只取最后12次图片路径设置,减少重复计算 + { + break; + } // 计算 index 和 appIndex - index = i % nativeAppNum + 11; + index = i % nativeAppNum + 12; appIndex = index; if (startangle >= 360) { appIndex = index % nativeAppNum; } // 计算 circleIndex - circleIndex = (12 - i) % 12; + circleIndex = (11 - i) % 12; if (circleIndex < 0) { circleIndex += 12; } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall); CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall); CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id); + cnt++; } } else if(startangle < 0) { int numToChange = abs(startangle) / 30; - for (int i = 0; i < numToChange; i++) + int cnt = 0; + for (int i = numToChange - 1; i >= 0; i--) { + if(cnt >= 12) //优化算法,只取最后12次图片路径设置,减少重复计算 + { + break; + } index = i % nativeAppNum + 12; appIndex = index; if (abs(startangle) >= 360) @@ -621,6 +632,7 @@ static void native_app_position_init(UIImageView ** CircleListAPP,int CircleList WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall); CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall); CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id); + cnt++; } } else