修改拨号盘图片显示bug
authorluozheng <1732036298@qq.com>
Wed, 20 Nov 2024 12:03:35 +0000 (20:03 +0800)
committerluozheng <1732036298@qq.com>
Wed, 20 Nov 2024 12:03:35 +0000 (20:03 +0800)
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp

index 7837645..5772aeb 100644 (file)
@@ -671,6 +671,7 @@ static void updateCircleListAndSelectImageForDirectClockwise(UIImageView** Circl
         }
 
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle大于0的顺时针%d:circleIndex:%d,appIndex:%d name:%s",nextstartangle, circleIndex, appIndex,ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
 
@@ -693,7 +694,7 @@ static void updateCircleListAndSelectImageForDirectClockwise(UIImageView** Circl
             }
         }
 
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex,preselectImageIndex]:[%d,%d]", curselectImageIndex, preselectImageIndex);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "nextstartangle:%d,startangle大于0的顺时针:[%d,%d] name:%s", nextstartangle,curselectImageIndex, preselectImageIndex,ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
         ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
@@ -709,18 +710,26 @@ static void updateCircleListForClockwiseNotDirect(UIImageView** CircleListAPP,
                                                   int& preselectImageIndex,
                                                   int nativeAppNum)
 {
-    int prevStartAngle = startangle + angleIncrement;
-    if (prevStartAngle % 30 == 0) 
+    if(startangle % 30 == 0) 
     {
-        int appIndex = (12 - (prevStartAngle) / 30) % nativeAppNum;
-        int circleIndex = appIndex % 12;
+        int prevStartAngle = startangle + 30;
+        int tempIndex =  prevStartAngle / 30;
+        int appIndex = (12 - tempIndex) % nativeAppNum;
+        if(startangle >= 360)
+        {
+            if (appIndex <= 0) 
+            {
+                appIndex = (- appIndex + 11) % nativeAppNum;
+            }
+        }
+
+        // 计算 circleIndex
+        int circleIndex = (12 - tempIndex) % 12;
         if (circleIndex < 0) {
             circleIndex += 12;
         }
-        if (appIndex < 0) {
-            appIndex = (- appIndex + 11) % nativeAppNum;
-        }
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle大于0的逆时针%d:circleIndex:%d,appIndex:%d name:%s",startangle,circleIndex, appIndex,ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
     }
@@ -754,7 +763,7 @@ static void updateCircleListForClockwiseNotDirect(UIImageView** CircleListAPP,
                 preselectImageIndex = (preselectImageIndex - 1 + nativeAppNum) % nativeAppNum;
             }
         }
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex,preselectImageIndex);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle:%d,startangle大于0的逆时针:[%d,%d] name:%s", startangle,curselectImageIndex, preselectImageIndex,ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
         ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
@@ -770,21 +779,23 @@ static void updateCircleListAndSelectImageForCounterclockwiseNotDirect(UIImageVi
                                                                        int& preselectImageIndex,
                                                                        int nativeAppNum)
 {
-    int absStartAngle = abs(startangle - (30 - angleIncrement));
-    if (absStartAngle % 30 == 0) {
-        int index = (absStartAngle / 30) % nativeAppNum + 11;
+
+    int absnextStartAngle = abs(startangle - (30 - angleIncrement));
+    if (absnextStartAngle % 30 == 0) {
+        int index = (absnextStartAngle / 30) % nativeAppNum + 11;
         int appIndex = index;
-        if (absStartAngle >= 360) {
+        if (absnextStartAngle >= 360) {
             appIndex = index % nativeAppNum;
         }
-        int circleIndex = ((absStartAngle - 30) / 30 ) % 12;
+        int circleIndex = ((absnextStartAngle - 30) / 30 ) % 12;
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle小于0的逆时针:circleIndex:%d,appIndex:%d", circleIndex, appIndex);
         CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
         
         preselectImageIndex = curselectImageIndex;
         curselectImageIndex = (curselectImageIndex + 1) % nativeAppNum;
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex, preselectImageIndex);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "absnextStartAngle:%d,startangle小于0的逆时针:[%d,%d]", absnextStartAngle,curselectImageIndex, preselectImageIndex);
         CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
         ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
@@ -805,12 +816,13 @@ static void updateCircleListAndSelectImageForCounterclockwiseDirect(UIImageView*
         int appIndex = (absStartAngle / 30) % nativeAppNum ;
         int circleIndex = (absStartAngle / 30) % 12;
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle小于0的顺时针:circleIndex:%d,appIndex:%d", circleIndex, appIndex);
         CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
         CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
 
         curselectImageIndex = preselectImageIndex;
         preselectImageIndex = (preselectImageIndex - 1 + nativeAppNum) % nativeAppNum;
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex, preselectImageIndex);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "absStartAngle:%d,startangle小于0的顺时针:[%d,%d]", absStartAngle,curselectImageIndex, preselectImageIndex);
         CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
         CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
         ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
@@ -841,7 +853,7 @@ static void updateCircleListAndSelectImageWhenStartangleZero(UIImageView** Circl
     CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
 
     curselectImageIndex = preselectImageIndex;
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex, preselectImageIndex);
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle等于0:[%d,%d]", curselectImageIndex, preselectImageIndex);
     CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
     CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
     ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);