#include "ui_resource_string.h"
#include "applist/include/ApplistModel.h"
#include "themestyle/include/ThemeStyleModel.h"
-
+#include "wearable_log.h"
#define HEART_APPLIST 1
namespace OHOS
{
*/
const AppItem g_nativeAppList[] = {
#ifdef A5133_DEMO_CLIENT
- {VIEW_OBU_MESSAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "OBU", STR_OBU_MESSAGE, nullptr},
+ {VIEW_OBU_MESSAGE, PNG_APPLIST_THEME_IMAGE_BIG, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "OBU", STR_OBU_MESSAGE, nullptr},
#endif
- {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "电话", STR_TELEPHONE, nullptr},
+ {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE_BIG, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "电话", STR_TELEPHONE, nullptr},
#if HEART_APPLIST
- {VIEW_HEART_CHART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr},
+ {VIEW_HEART_CHART, PNG_APPLIST_HEART_IMAGE_BIG, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr},
#endif
- {VIEW_BLOOD_RESULT, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr},
- {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr},
- {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动", STR_TRAINING, nullptr},
- {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动记录", STR_TRAINING_RECORD, nullptr},
- {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "活动", STR_ACTIVITY, nullptr},
- {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "AI全家桶", STR_AI_FAMILY_MEALS, nullptr},
+ {VIEW_BLOOD_RESULT, PNG_APPLIST_SPO2_IMAGE_BIG, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr},
+ {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE_BIG, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr},
+ {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE_BIG, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动", STR_TRAINING, nullptr},
+ {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE_BIG, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动记录", STR_TRAINING_RECORD, nullptr},
+ {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE_BIG, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "活动", STR_ACTIVITY, nullptr},
+ {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE_BIG, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "AI全家桶", STR_AI_FAMILY_MEALS, nullptr},
#ifdef SUPPORT_ALIPAY_SEC
- {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr},
+ {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE_BIG, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr},
#endif
- {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
- {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr},
- {VIEW_CALCULATOR, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计算器", STR_CALCULATOR, nullptr},
- {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr},
- {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr},
- {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr},
- {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr},
- {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr},
- {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr},
- {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
- {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr},
- {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
- {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
- {VIEW_ASSISTANT, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr},
- {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
- {VIEW_CALENDAR, PNG_APPLIST_CALENDAR_IMAGE, PNG_APPLIST_CALENDAR_IMAGE, PNG_APPLIST_DEFAULT_IMG, "日历", STR_CALENDAR, nullptr},
- {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
+ {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE_BIG, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
+ {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE_BIG, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr},
+ {VIEW_CALCULATOR, PNG_APPLIST_INFORMATION_IMAGE_BIG, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计算器", STR_CALCULATOR, nullptr},
+ {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE_BIG, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr},
+ {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE_BIG, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr},
+ {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE_BIG, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr},
+ {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE_BIG, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr},
+ {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE_BIG, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr},
+ {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE_BIG, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr},
+ {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE_BIG, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
+ {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE_BIG, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr},
+ {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE_BIG, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
+ {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE_BIG, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
+ {VIEW_ASSISTANT, PNG_APPLIST_SMART_IMAGE_BIG, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr},
+ {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE_BIG, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
+ {VIEW_CALENDAR, PNG_APPLIST_CALENDAR_IMAGE_BIG, PNG_APPLIST_CALENDAR_IMAGE, PNG_APPLIST_DEFAULT_IMG, "日历", STR_CALENDAR, nullptr},
+ {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE_BIG, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
#if 0
/*屏蔽Slice*/
{VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
{
return ThemeStyleModel::GetInstance().GetAppListDisplayStyle();
}
+
+ /* ----------------------------------- 拨号盘 ---------------------------------- */
+ // 设置拨号盘的起始角度
+ void ApplistModel::SetCircleListStartAngle(int angle)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"SetCircleListStartAngle:%d\r\n",angle);
+ circleListStartAngle = angle;
+ }
+
+ // 获取拨号盘的起始角度
+ int ApplistModel::GetCircleListStartAngle(void)
+ {
+ return circleListStartAngle;
+ }
+
+ // 设置当前选中的图片索引
+ void ApplistModel::SetCurselectImageIndex(int index)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"SetCurselectImageIndex:%d\r\n",index);
+ curselectImageIndex = index;
+ }
+
+ // 获取当前选中的图片索引
+ int ApplistModel::GetCurselectImageIndex(void)
+ {
+ return curselectImageIndex;
+ }
+
+ // 设置上一次选中的图片索引
+ void ApplistModel::SetPreselectImageIndex(int index)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"SetPreselectImageIndex:%d\r\n",index);
+ preselectImageIndex = index;
+ }
+
+ // 获取上一次选中的图片索引
+ int ApplistModel::GetPreselectImageIndex(void)
+ {
+ return preselectImageIndex;
+ }
}
#include "common/image_cache_manager.h"
#include "hal_tick.h"
#include "themestyle/include/ThemeStyleModel.h"
+#include "ModelListenerSample.h"
+#include "cmath"
namespace OHOS {
static constexpr int16 NUM_2 = 2;
#define ARC_SCALE_LIST_WIDTH (Screen::GetInstance().GetWidth() - ARC_SCALE_LIST_X)
#define ARC_SCALE_LIST_HEIGHT (Screen::GetInstance().GetHeight())
-
+class AppCircleListOnDragListener;
+static AppCircleListOnDragListener *AppCircleListOnDragListener_ = nullptr;
ApplistView::ApplistView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::ApplistView ");
delete ArcScaleListDragListener_;
ArcScaleListDragListener_ = nullptr;
}
+ if(CircleListGroup_ != nullptr)
+ {
+ delete CircleListGroup_;
+ CircleListGroup_ = nullptr;
+ }
+ if(CircleListImage1)
+ {
+ delete CircleListImage1;
+ CircleListImage1 = nullptr;
+ }
+ if(CircleListImage2)
+ {
+ delete CircleListImage2;
+ CircleListImage2 = nullptr;
+ }
+ if(CircleListSelectImage)
+ {
+ delete CircleListSelectImage;
+ CircleListSelectImage = nullptr;
+ }
+ if(CircleListPicker)
+ {
+ delete CircleListPicker;
+ CircleListPicker = nullptr;
+ }
+ for(int i = 0;i < CircleListAPPNum;i++)
+ {
+ if(nullptr != CircleListAPP[i])
+ {
+ delete CircleListAPP[i];
+ CircleListAPP[i] = nullptr;
+ }
+ }
+ if(nullptr != AppCircleListOnDragListener_)
+ {
+ delete AppCircleListOnDragListener_;
+ AppCircleListOnDragListener_ = nullptr;
+ }
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::~ApplistView end...");
}
{
ArcScaleListStyleOnStart();
}
+ else if(AppListStyle::CIRCLE_LIST_STYLE == style) {
+ CircleListStyleOnStart();
+ }
else {
ListStyleOnStart();
}
}
}
+#define NATIVE_APP_NUM_MAX 50
+static const uint8_t NATIVE_APP_ANGEL_INTERVAL = 360 / 12;
+uint8_t array[NATIVE_APP_NUM_MAX]{0}; //用来标记图片数组中每个元素是大还是小(实现缩放)
+static const int CIRCLE_WATCH_R = 233; //圆形手表半径
+static const double PI_OVER_180 = M_PI / 180.0; // 180度对应的弧度
+static const int native_big_app_size = 90; //大图标
+static const int native_small_app_size = 72; //小图标
+static int native_app_position_update_startflag = 0; //native_app_position_update函数开始更新的标志位
+//获取是否是正向旋转
+static bool isDirectRotate(const DragEvent& event)
+{
+ int startpointX = event.GetStartPoint().x;
+ int startpointY = event.GetStartPoint().y;
+ bool isDirectRotate = false;
+ uint8_t dragDirection = event.GetDragDirection();
+ if ((dragDirection == DragEvent::DIRECTION_TOP_TO_BOTTOM && startpointX >= 233) ||
+ (dragDirection == DragEvent::DIRECTION_BOTTOM_TO_TOP && startpointX < 233) ||
+ (dragDirection == DragEvent::DIRECTION_LEFT_TO_RIGHT && startpointY < 233) ||
+ (dragDirection == DragEvent::DIRECTION_RIGHT_TO_LEFT && startpointY >= 233))
+ {
+ isDirectRotate = true;
+ }
+ return isDirectRotate;
+}
+
+static void native_app_position_init(UIImageView ** CircleListAPP,int CircleListAPPNum,int startangle,uint8_t array[])
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle:%d",startangle);
+
+ double curangle = startangle;
+ double curscale = (int)curangle % NATIVE_APP_ANGEL_INTERVAL;
+ int x = 0;
+ int y = 0;
+ int size = native_small_app_size + curscale*0.6;
+ int size2 = native_big_app_size - curscale*0.6;
+ int index = 0;
+ int margin1 = 100-size;//边距
+ int margin2 = 100-size2;//边距
+ int R = CIRCLE_WATCH_R - size / 2 - margin1;
+ int R2 = CIRCLE_WATCH_R - size2 / 2 - margin2;
+
+ if(startangle % 30 == 0)
+ {
+ int index = 0;
+ int appIndex = 0;
+ int circleIndex = 0;
+
+ int nativeAppNum = ApplistModel::GetInstance().GetAppListNum();
+ int native_app_image_start_index = 0;
+
+ if(startangle > 0 )
+ {
+ int numToChange = startangle / 30;
+ for (int i = 1; i <= numToChange; i++)
+ {
+ // 计算 index 和 appIndex
+ index = i % nativeAppNum + 11;
+ appIndex = index;
+ if (startangle >= 360) {
+ appIndex = index % nativeAppNum;
+ }
+
+ // 计算 circleIndex
+ circleIndex = (12 - 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);
+ }
+
+ }
+ else if(startangle < 0)
+ {
+ int numToChange = abs(startangle) / 30;
+ for (int i = 1; i <= numToChange; i++)
+ {
+ index = i % nativeAppNum + 11;
+ appIndex = index;
+ if (abs(startangle) >= 360)
+ {
+ appIndex = index % nativeAppNum;
+ }
+ circleIndex = ((abs(startangle) - 30) / 30 ) % 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);
+ }
+ }
+ else
+ {
+ for(int i = 0;i < CircleListAPPNum;i++)
+ {
+ index = i % 2; // 使用取模操作实现循环列表
+ if(index == 0)
+ {
+ array[i] = 0;
+ }
+ else
+ {
+ array[i] = 1;
+ }
+ }
+ }
+ }
+
+ for(int i = 0;i < CircleListAPPNum;i++)
+ {
+ if(array[i] == 0)
+ {
+ x = ((CIRCLE_WATCH_R - cos(curangle*PI_OVER_180) * R) - size / 2);
+ y = ((CIRCLE_WATCH_R - sin(curangle*PI_OVER_180) * R) - size / 2);
+ CircleListAPP[i]->SetPosition(x, y, size,size);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "x:%d,y:%d,size:%d",x,y,size);
+ }
+ else
+ {
+ x = ((CIRCLE_WATCH_R - cos(curangle*PI_OVER_180) * R2) - size2 / 2);
+ y = ((CIRCLE_WATCH_R - sin(curangle*PI_OVER_180) * R2) - size2 / 2);
+ CircleListAPP[i]->SetPosition(x, y, size2,size2);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "x:%d,y:%d,size2:%d",x,y,size2);
+ }
+ curangle += NATIVE_APP_ANGEL_INTERVAL;
+ }
+ RootView::GetInstance()->Invalidate();
+}
+static void native_app_position_update(UIImageView ** CircleListAPP,int CircleListAPPNum,UIImageView *CircleListSelectImage_,int startangle,bool isDirectRotate)
+{
+ // 打印起始角度
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle:%d",startangle);
+
+
+ // 当前角度
+ double curangle = startangle;
+ // 缩放系数
+ int curscale = 0;
+
+ // 计算缩放系数
+ if (startangle!= 0 && startangle % 30 == 0) {
+ curscale = 30;
+ } else {
+ int baseMod = startangle % 30;
+ if (startangle > 0) {
+ curscale =!isDirectRotate? 30 - baseMod : baseMod;
+ } else if (startangle < 0) {
+ curscale = isDirectRotate? 30 + baseMod : baseMod;
+ } else {
+ curscale =!isDirectRotate? 30 - baseMod : 30 + baseMod;
+ }
+ }
+
+ int nativeAppNum = ApplistModel::GetInstance().GetAppListNum();
+
+ // 打印缩放系数
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "curscale:%d",curscale);
+
+ int xPos = 0;
+ int yPos = 0;
+ int size = native_small_app_size + abs(curscale*0.6);
+ int size2 = native_big_app_size - abs(curscale*0.6);
+
+ int margin1 = 100 - size;//边距
+ int margin2 = 100 - size2;//边距
+ int R = CIRCLE_WATCH_R - size / 2 - margin1;
+ int R2 = CIRCLE_WATCH_R - size2 / 2 - margin2;
+
+ int index = 0;
+ int appIndex = 0;
+ int circleIndex = 0;
+
+ int curselectImageIndex = ApplistModel::GetInstance().GetCurselectImageIndex(); //当前选中图片索引
+ int preselectImageIndex = ApplistModel::GetInstance().GetPreselectImageIndex(); //上一次选中图片索引
+
+ if(startangle % 30 == 0){
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startangle:%d,[curselectImageIndex,preselectImageIndex]:[%d,%d]", startangle,curselectImageIndex,preselectImageIndex);
+ native_app_position_update_startflag = 0;//表示可以下次更新了
+ ApplistModel::GetInstance().SetCircleListStartAngle(startangle);
+ }
+
+ // 根据起始角度正负和旋转方向计算索引
+ if (startangle > 0)
+ {
+ //顺时针
+ if(isDirectRotate)
+ {
+ if(startangle % 30 == 0)
+ {
+ int tempIndex = (startangle / 30);
+ // 计算 index 和 appIndex
+ index = tempIndex % nativeAppNum + 11;
+ appIndex = index;
+ if (startangle >= 360) {
+ appIndex = index % nativeAppNum;
+ }
+
+ // 计算 circleIndex
+ circleIndex = (12 - tempIndex) % 12;
+ if (circleIndex < 0) {
+ circleIndex += 12;
+ }
+
+ WEARABLE_LOGE(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);
+
+ // 选中图片计算
+ if(startangle <= 180)
+ {
+ if(preselectImageIndex == 0 && curselectImageIndex == 12)
+ {
+ preselectImageIndex = 1;
+ curselectImageIndex = 0;
+ }
+ else
+ {
+ preselectImageIndex = curselectImageIndex;
+ curselectImageIndex = (curselectImageIndex - 1) % nativeAppNum;
+ }
+ }
+ else
+ {
+ if(preselectImageIndex == 1 && curselectImageIndex == 0)
+ {
+ preselectImageIndex = 0;
+ curselectImageIndex = 12;
+ }
+ else
+ {
+ preselectImageIndex = curselectImageIndex;
+ curselectImageIndex = (curselectImageIndex + 1) % nativeAppNum;
+ }
+ }
+
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex,preselectImageIndex]:[%d,%d]", curselectImageIndex,preselectImageIndex);
+ CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
+ CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
+ ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
+ ApplistModel::GetInstance().SetPreselectImageIndex(preselectImageIndex);
+ }
+ }
+ else //逆时针处理
+ {
+ int prevStartAngle = startangle + 3;
+ if(prevStartAngle % 30 == 0)
+ {
+ appIndex = (12 - (prevStartAngle) / 30) % nativeAppNum;
+ circleIndex = appIndex % 12;
+ if (circleIndex < 0)
+ {
+ circleIndex += 12;
+ }
+ if(appIndex < 0)
+ {
+ appIndex = (- appIndex + 11) % nativeAppNum;
+ }
+ WEARABLE_LOGE(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);
+ }
+
+ if(startangle % 30 == 0)
+ {
+ // 选中图片计算
+ if(startangle <= 180)
+ {
+ if(preselectImageIndex == 0 && curselectImageIndex == 12)
+ {
+ preselectImageIndex = 1;
+ curselectImageIndex = 0;
+ }
+ else
+ {
+ curselectImageIndex = preselectImageIndex;
+ preselectImageIndex = curselectImageIndex + 1;
+ }
+ }
+ else
+ {
+ if(preselectImageIndex == 12 && curselectImageIndex == 13)
+ {
+ preselectImageIndex = 0;
+ curselectImageIndex = 12;
+ }
+ else
+ {
+ curselectImageIndex = (curselectImageIndex - 1 + nativeAppNum) % nativeAppNum;
+ preselectImageIndex = (preselectImageIndex - 1 + nativeAppNum) % nativeAppNum;
+ }
+ }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex,preselectImageIndex);
+ CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
+ CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
+ ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
+ ApplistModel::GetInstance().SetPreselectImageIndex(preselectImageIndex);
+ }
+ }
+ }
+ else if (startangle < 0)
+ {
+ if(!isDirectRotate) //逆时针
+ {
+ int absStartAngle = abs(startangle - (30 - 3));
+ if(absStartAngle % 30 == 0)
+ {
+ index = (absStartAngle / 30) % nativeAppNum + 11;
+ appIndex = index;
+ if (absStartAngle >= 360)
+ {
+ appIndex = index % nativeAppNum;
+ }
+ circleIndex = ((absStartAngle - 30) / 30 ) % 12;
+ WEARABLE_LOGE(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);
+
+ preselectImageIndex = curselectImageIndex;
+ curselectImageIndex = (curselectImageIndex + 1) % nativeAppNum;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex,preselectImageIndex);
+ CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
+ CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
+ ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
+ ApplistModel::GetInstance().SetPreselectImageIndex(preselectImageIndex);
+ }
+ }
+ else
+ {
+ int absStartAngle = abs(startangle);
+ if(absStartAngle % 30 == 0)
+ {
+ appIndex = (absStartAngle / 30) % nativeAppNum ;
+ circleIndex = (absStartAngle / 30) % 12;
+ WEARABLE_LOGE(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);
+
+ curselectImageIndex = preselectImageIndex;
+ preselectImageIndex = (preselectImageIndex - 1 + nativeAppNum) % nativeAppNum;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex,preselectImageIndex);
+ CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
+ CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
+ ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
+ ApplistModel::GetInstance().SetPreselectImageIndex(preselectImageIndex);
+ }
+ }
+ }
+ else
+ {
+ if(!isDirectRotate) //逆时针
+ {
+ index = 0;
+ appIndex = 11;
+ circleIndex = 11;
+ }
+ else
+ {
+ index = 0;
+ appIndex = 0;
+ circleIndex = 0;
+ }
+ WEARABLE_LOGE(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);
+
+ curselectImageIndex = preselectImageIndex;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[curselectImageIndex->preselectImageIndex]:[%d->%d]", curselectImageIndex,preselectImageIndex);
+ CircleListSelectImage_->SetSrc(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].iconLarge);
+ CircleListSelectImage_->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[curselectImageIndex].id);
+ ApplistModel::GetInstance().SetCurselectImageIndex(curselectImageIndex);
+ ApplistModel::GetInstance().SetPreselectImageIndex(preselectImageIndex);
+ }
+
+ //更改图片位置和大小
+ for(int i = 0; i < CircleListAPPNum; i++)
+ {
+ if(array[i] == 0)
+ {
+ xPos = ((CIRCLE_WATCH_R - cos(curangle*PI_OVER_180) * R) - size / 2);
+ yPos = ((CIRCLE_WATCH_R - sin(curangle*PI_OVER_180) * R) - size / 2);
+ CircleListAPP[i]->SetPosition(xPos, yPos, size,size);
+ if(size == native_big_app_size && (curscale == 30))
+ array[i] = 1;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "size:%d",size);
+ }
+ else
+ {
+ xPos = ((CIRCLE_WATCH_R - cos(curangle*PI_OVER_180) * R2) - size2 / 2);
+ yPos = ((CIRCLE_WATCH_R - sin(curangle*PI_OVER_180) * R2) - size2 / 2);
+ CircleListAPP[i]->SetPosition(xPos, yPos, size2,size2);
+ if(size2 == native_small_app_size && (curscale == 30))
+ array[i] = 0;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "size2:%d",size2);
+ }
+ curangle += NATIVE_APP_ANGEL_INTERVAL ; //每个NATIVE_APP位置变化NATIVE_APP_ANGEL_INTERVAL度
+ }
+
+ // 刷新视图
+ RootView::GetInstance()->Invalidate();
+ /* -------------------------------------------------------------------------- */
+}
+class AppCircleListOnDragListener : public UIView::OnDragListener,
+ public UIPicker::SelectedListener,
+ public UIView::OnRotateListener,
+ public ModelListenerSample
+{
+public:
+ AppCircleListOnDragListener(UIImageView ** CircleListAPP_,int CircleListAPPNum_,UIImageView *CircleListSelectImage_)
+ {
+ CircleListAPP = CircleListAPP_;
+ CircleListAPPNum = CircleListAPPNum_;
+ CircleListSelectImage = CircleListSelectImage_;
+ angle = ApplistModel::GetInstance().GetCircleListStartAngle();
+ }
+ ~AppCircleListOnDragListener(){}
+ bool OnDragStart(UIView& view, const DragEvent& event) override
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AppCircleListOnDragListener::OnDragStart");
+ return true;
+ }
+
+ bool OnDrag(UIView& view, const DragEvent& event) override
+ {
+ int deltaX = abs(event.GetLastPoint().x - event.GetStartPoint().x);
+ int deltaY = abs(event.GetLastPoint().y - event.GetStartPoint().y);
+ if (deltaX < 50 && deltaY < 50)
+ {
+ return false;
+ }
+
+
+
+ return true;
+ }
+
+ bool OnDragEnd(UIView& view, const DragEvent& event) override
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AppCircleListOnDragListener::OnDragEnd");
+ if(native_app_position_update_startflag == 0) {
+ native_app_position_update_startflag = 1;
+ OnDragEndFlag = 1;
+ isDirectRotateFlag = isDirectRotate(event);//获取是否是正向旋转的标志
+ }
+ return true;
+ }
+
+ void Notify() override
+ {
+ if(OnDragEndFlag)
+ {
+ int angleIncrement = isDirectRotateFlag? 3 : -3;
+ angle += angleIncrement;
+ rotateangle += angleIncrement;
+ if(rotateangle >= 30 || rotateangle <= -30)
+ {
+ OnDragEndFlag = 0;
+ rotateangle = 0;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);
+ }
+ if(native_app_position_update_startflag)
+ native_app_position_update(CircleListAPP,CircleListAPPNum,CircleListSelectImage,angle,isDirectRotateFlag);
+ }
+ }
+ void OnPickerStoped(UIPicker &picker) override
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "preOnSelectPickerIndex:%d,picker.GetSelected:%d",preOnSelectPickerIndex,picker.GetSelected());
+ // 判断是否为逆时针方向
+ if ((preOnSelectPickerIndex == 0 && picker.GetSelected() == 1) ||
+ (preOnSelectPickerIndex == 1 && picker.GetSelected() == 2) ||
+ (preOnSelectPickerIndex == 2 && picker.GetSelected() == 0)) {
+ isDirectRotateFlag = false;
+ }
+ // 判断是否为顺时针方向
+ else if ((preOnSelectPickerIndex == 1 && picker.GetSelected() == 0) ||
+ (preOnSelectPickerIndex == 0 && picker.GetSelected() == 2) ||
+ (preOnSelectPickerIndex == 2 && picker.GetSelected() == 1)) {
+ isDirectRotateFlag = true;
+ }
+
+ if (preOnSelectPickerIndex!= picker.GetSelected())
+ {
+ if (native_app_position_update_startflag == 0)
+ {
+ native_app_position_update_startflag = 1;
+ OnDragEndFlag = 1;
+ }
+ // 更新之前选中的索引值为当前选中的值
+ preOnSelectPickerIndex = picker.GetSelected();
+ }
+ return;
+ }
+ private:
+ UIImageView **CircleListAPP{nullptr};
+ UIImageView *CircleListSelectImage{nullptr};
+ int CircleListAPPNum{0};
+ int angle = 0; //要旋转角度
+ int rotateangle{0}; //旋转累计角度
+ uint8_t OnDragEndFlag{0};//是否拖拽结束的标志
+ bool isDirectRotateFlag{false};//是否是正向旋转的标志
+ int preOnSelectPickerIndex{1};//当前picker选中索引
+};
+
+void ApplistView::CircleListStyleOnStart(void)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListStyleOnStart start!! [%d]", __LINE__);
+ if(nullptr == CircleListGroup_)
+ {
+ CircleListGroup_ = new UIViewGroup();
+ if(nullptr == CircleListGroup_)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListGroup_ failed!! [%d]", __LINE__);
+ return;
+ }
+ CircleListGroup_->SetPosition(0, 0);
+ CircleListGroup_->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ CircleListGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ CircleListGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ CircleListGroup_->SetTouchable(true);
+ CircleListGroup_->SetDraggable(true);
+ SetContainerView(CircleListGroup_);
+ /* -------------------------------------------------------------------------- */
+ if (CircleListPicker == nullptr)
+ {
+ CircleListPicker = new UIPicker();
+ if (CircleListPicker == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CircleListPicker new fail!");
+ return;
+ }
+ CircleListPicker->SetPosition(213, 213, 40, 40);
+ CircleListPicker->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ CircleListPicker->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ CircleListPicker->SetStyle(STYLE_BORDER_RADIUS, 150);
+ CircleListPicker->SetItemHeight(60);
+ CircleListPicker->SetLoopState(true);
+ CircleListPicker->SetRotateFactor(1.0);
+ CircleListPicker->RequestFocus();
+ CircleListPicker->SetLoopState(true);
+ CircleListPicker->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff), Color::GetColorFromRGBA(0xff, 0x00, 0x00, 0xff));
+ CircleListPicker->SetSelected(1);
+ int start = 1;
+ int end = 3;
+ CircleListPicker->SetValues(start,end);
+ // printf("---%d\n",CircleListPicker->GetSelected());
+ CircleListGroup_->Add(CircleListPicker);
+ }
+ /* -------------------------------------------------------------------------- */
+ if(CircleListImage1 == nullptr)
+ {
+ CircleListImage1 = new UIImageView();
+ if(nullptr == CircleListImage1)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListImage1 failed!! [%d]", __LINE__);
+ return;
+ }
+ CircleListImage1->SetPosition(114, 122, 220, 330);
+ CircleListImage1->SetSrc("/user/res/themestyle/circlelist/circleListImage1.bin");
+ CircleListGroup_->Add(CircleListImage1);
+ }
+ /* -------------------------------------------------------------------------- */
+ CircleListAPPNum = sizeof(CircleListAPP) / sizeof(CircleListAPP[0]);//图片显示数量
+ /* -------------------------------------------------------------------------- */
+ for(int i = 0;i < CircleListAPPNum ;i++)
+ {
+ if(nullptr == CircleListAPP[i])
+ {
+ CircleListAPP[i] = new UIImageView();
+ if(nullptr == CircleListAPP[i])
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListStyleOnStart failed!! [%d]", __LINE__);
+ return;
+ }
+ CircleListAPP[i]->SetAutoEnable(false);
+ CircleListAPP[i]->SetResizeMode(UIImageView::SCALE_DOWN);
+ CircleListAPP[i]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[i].iconSmall);
+ CircleListAPP[i]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[i].id);
+ CircleListAPP[i]->SetTouchable(true);
+ CircleListAPP[i]->SetOnClickListener(presenter_);
+ }
+ CircleListGroup_->Add(CircleListAPP[i]); // Add the UIImageView to the UIViewGroup (CircleListGroup_)
+ }
+ /* -------------------------------------------------------------------------- */
+ uint16_t presliceId = NativeAbility::GetInstance().GetPreSliceId();
+ if (presliceId == VIEW_MAIN) //如果是从主页进入的,那么 startangle = 0
+ {
+ ApplistModel::GetInstance().SetCircleListStartAngle(0);
+ ApplistModel::GetInstance().SetCurselectImageIndex(6);
+ ApplistModel::GetInstance().SetPreselectImageIndex(6);
+ }
+ native_app_position_init(CircleListAPP,CircleListAPPNum,ApplistModel::GetInstance().GetCircleListStartAngle() ,array);
+ /* -------------------------------------------------------------------------- */
+ if(CircleListImage2 == nullptr)
+ {
+ CircleListImage2 = new UIImageView();
+ if(nullptr == CircleListImage2)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListImage2 failed!! [%d]", __LINE__);
+ return;
+ }
+ CircleListImage2->SetPosition(28, 197, 72, 72);
+ CircleListImage2->SetSrc("/user/res/themestyle/circlelist/circleListImage2.bin");
+ CircleListImage2->SetTouchable(true);
+ CircleListImage2->SetOnClickListener(presenter_);
+ CircleListImage2->SetViewIndex(VIEW_INVALID);
+ CircleListGroup_->Add(CircleListImage2);
+ }
+ if(CircleListSelectImage == nullptr)
+ {
+ CircleListSelectImage = new UIImageView();
+ if(nullptr == CircleListSelectImage)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListSelectImage failed!! [%d]", __LINE__);
+ return;
+ }
+ CircleListSelectImage->SetPosition(CircleListImage1->GetX() + 30, CircleListImage1->GetY() + 30,160,160);
+ CircleListSelectImage->SetAutoEnable(false);
+ CircleListSelectImage->SetResizeMode(UIImageView::SCALE_DOWN);
+ CircleListSelectImage->SetSrc(ApplistModel::GetInstance().GetApplistItems()[ApplistModel::GetInstance().GetCurselectImageIndex()].iconLarge);
+ CircleListSelectImage->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[ApplistModel::GetInstance().GetCurselectImageIndex()].id);
+ CircleListSelectImage->SetTouchable(true);
+ CircleListSelectImage->SetOnClickListener(presenter_);
+ CircleListGroup_->Add(CircleListSelectImage);
+ }
+ /* -------------------------------------------------------------------------- */
+ if(nullptr == AppCircleListOnDragListener_)
+ {
+ AppCircleListOnDragListener_ = new AppCircleListOnDragListener(CircleListAPP,CircleListAPPNum,CircleListSelectImage);
+ if (nullptr == AppCircleListOnDragListener_)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistView::AppCircleListOnDragListener_ failed!! [%d]", __LINE__);
+ return;
+ }
+ }
+ CircleListGroup_->SetOnDragListener(static_cast<UIView::OnDragListener*>(AppCircleListOnDragListener_));
+ CircleListPicker->RegisterSelectedListener(static_cast<UIPicker::SelectedListener *>(AppCircleListOnDragListener_));
+ /* -------------------------------------------------------------------------- */
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListStyleOnStart success!! [%d]", __LINE__);
+ }
+ return;
+}
+
+void ApplistView::CircleListStyleOnSetUpView(void)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListStyleOnSetUpView [%d]", __LINE__);
+ return;
+}
+void ApplistView::CircleListStyleOnStop(void)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::CircleListStyleOnStop [%d]", __LINE__);
+ return;
+}
+
void ApplistView::OnSetUpView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::OnSetUpView");
{
ArcScaleListStyleOnSetUpView();
}
+ else if(AppListStyle::CIRCLE_LIST_STYLE == style)
+ {
+ CircleListStyleOnSetUpView();
+ }
else {
ListStyleOnSetUpView();
}
} else if(AppListStyle::ARC_SCALE_LIST_STYLE == style) {
ArcScaleListStyleOnStop(); //弧形
RootView::GetInstance()->ClearOnKeyActListener();
+ } else if(style == AppListStyle::CIRCLE_LIST_STYLE) {
+ CircleListStyleOnStop();//拨号盘
+ RootView::GetInstance()->ClearOnKeyActListener();
} else {
ListStyleOnStop();//list
RootView::GetInstance()->ClearOnKeyActListener();
} else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::FOOTBALL_STYLE) {
FootballStyleOnStop();
RootView::GetInstance()->ClearOnKeyActListener();
+ } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::CIRCLE_LIST_STYLE) {
+ CircleListStyleOnStop();
+ RootView::GetInstance()->ClearOnKeyActListener();
}
ThemeStyleModel::GetInstance().SetTheSameSliceChangeFlag(false);
}
{
ArcScaleListAdapter_->AddListItem(item);
}
+ else if(AppListStyle::CIRCLE_LIST_STYLE == style)
+ {
+ // 拨号盘
+ }
else {
listAdapter_->AddListItem(item);
}
{
ArcScaleListStyleOnStop();
}
+ else if(AppListStyle::CIRCLE_LIST_STYLE == style)
+ {
+ CircleListStyleOnStop();
+ }
else {
listAdapter_->ClearItem();
}
{
ArcScaleList_->RefreshList();
}
+ else if(AppListStyle::CIRCLE_LIST_STYLE == style)
+ {
+ // 拨号盘
+ }
else {
contentList_->RefreshList();
}