1
1
#include "app_list_view.h"
2
2
#include "i18n/language.h"
3
3
#include "nrf_log.h"
4
+ #include "settings.h"
4
5
5
6
#define ICON_WIDTH 32
6
7
#define ICON_HEIGHT 32
11
12
12
13
#define ICON_ANIM_LONG_TIME 500
13
14
#define ICON_ANIM_SHORT_TIME 200
15
+
16
+ static bool mui_list_view_anim_enabled () { return settings_get_data ()-> anim_enabled ; }
14
17
static void app_list_view_icon_anim_exec (void * p , int32_t value ) {
15
18
app_list_view_t * p_view = (app_list_view_t * )p ;
16
19
p_view -> icon_anim_value = value ;
@@ -55,9 +58,9 @@ static void app_list_view_on_draw(mui_view_t *p_view, mui_canvas_t *p_canvas) {
55
58
// mui_canvas_draw_xbm(p_canvas, icon_x, ICON_TOP_MARGIN, ICON_WIDTH, ICON_HEIGHT, app->icon_32x32->data);
56
59
// mui_canvas_set_draw_color(p_canvas, 1);
57
60
//}else{
58
- if (app -> icon_32x32 ){
59
- mui_canvas_draw_xbm (p_canvas , icon_x , ICON_TOP_MARGIN , ICON_WIDTH , ICON_HEIGHT , app -> icon_32x32 -> data );
60
- }
61
+ if (app -> icon_32x32 ) {
62
+ mui_canvas_draw_xbm (p_canvas , icon_x , ICON_TOP_MARGIN , ICON_WIDTH , ICON_HEIGHT , app -> icon_32x32 -> data );
63
+ }
61
64
//}
62
65
}
63
66
}
@@ -108,35 +111,36 @@ static void app_list_view_on_input(mui_view_t *p_view, mui_input_event_t *event)
108
111
p_app_list_view -> focus ++ ;
109
112
mui_anim_set_values (& p_app_list_view -> icon_anim , - ICON_GROUP_WIDTH , 0 );
110
113
mui_anim_set_time (& p_app_list_view -> icon_anim , ICON_ANIM_SHORT_TIME );
111
- mui_anim_start (& p_app_list_view -> icon_anim );
112
-
113
114
} else {
114
115
p_app_list_view -> focus = 0 ;
115
116
int32_t scroll_offset = 1 * size * ICON_GROUP_WIDTH ;
116
117
mui_anim_set_values (& p_app_list_view -> icon_anim , scroll_offset , 0 );
117
118
mui_anim_set_time (& p_app_list_view -> icon_anim , ICON_ANIM_LONG_TIME );
119
+ }
120
+ if (mui_list_view_anim_enabled ()) {
118
121
mui_anim_start (& p_app_list_view -> icon_anim );
122
+ mui_anim_set_values (& p_app_list_view -> name_anim , FONT_HEIGHT , 0 );
123
+ mui_anim_start (& p_app_list_view -> name_anim );
119
124
}
120
- mui_anim_set_values (& p_app_list_view -> name_anim , FONT_HEIGHT , 0 );
121
- mui_anim_start (& p_app_list_view -> name_anim );
122
125
} break ;
123
126
124
127
case INPUT_KEY_LEFT : {
125
128
if (p_app_list_view -> focus - 1 >= 0 ) {
126
129
p_app_list_view -> focus -- ;
127
130
mui_anim_set_values (& p_app_list_view -> icon_anim , ICON_GROUP_WIDTH , 0 );
128
131
mui_anim_set_time (& p_app_list_view -> icon_anim , ICON_ANIM_SHORT_TIME );
129
- mui_anim_start (& p_app_list_view -> icon_anim );
130
132
131
133
} else {
132
134
p_app_list_view -> focus = size - 1 ;
133
135
int32_t scroll_offset = -1 * size * ICON_GROUP_WIDTH ;
134
136
mui_anim_set_values (& p_app_list_view -> icon_anim , scroll_offset , 0 );
135
137
mui_anim_set_time (& p_app_list_view -> icon_anim , ICON_ANIM_LONG_TIME );
138
+ }
139
+ if (mui_list_view_anim_enabled ()) {
140
+ mui_anim_set_values (& p_app_list_view -> name_anim , FONT_HEIGHT , 0 );
136
141
mui_anim_start (& p_app_list_view -> icon_anim );
142
+ mui_anim_start (& p_app_list_view -> name_anim );
137
143
}
138
- mui_anim_set_values (& p_app_list_view -> name_anim , FONT_HEIGHT , 0 );
139
- mui_anim_start (& p_app_list_view -> name_anim );
140
144
}
141
145
142
146
break ;
@@ -151,19 +155,29 @@ static void app_list_view_on_input(mui_view_t *p_view, mui_input_event_t *event)
151
155
152
156
static void app_list_view_on_enter (mui_view_t * p_view ) {
153
157
app_list_view_t * p_app_list_view = p_view -> user_data ;
154
- mui_anim_set_values (& p_app_list_view -> icon_anim , - ICON_GROUP_WIDTH , 0 );
155
- mui_anim_start (& p_app_list_view -> icon_anim );
156
- mui_anim_set_values (& p_app_list_view -> name_anim , - FONT_HEIGHT , 0 );
157
- mui_anim_start (& p_app_list_view -> name_anim );
158
+ if (mui_list_view_anim_enabled ()) {
159
+ mui_anim_set_values (& p_app_list_view -> icon_anim , - ICON_GROUP_WIDTH , 0 );
160
+ mui_anim_start (& p_app_list_view -> icon_anim );
161
+ mui_anim_set_values (& p_app_list_view -> name_anim , - FONT_HEIGHT , 0 );
162
+ mui_anim_start (& p_app_list_view -> name_anim );
163
+ }
158
164
}
159
165
160
- static void app_list_view_on_exit (mui_view_t * p_view ) {}
166
+ static void app_list_view_on_exit (mui_view_t * p_view ) {
167
+ app_list_view_t * p_app_list_view = p_view -> user_data ;
168
+ if (mui_list_view_anim_enabled ()) {
169
+ mui_anim_stop (& p_app_list_view -> icon_anim );
170
+ mui_anim_stop (& p_app_list_view -> name_anim );
171
+ }
172
+ }
161
173
162
174
app_list_view_t * app_list_view_create () {
163
175
app_list_view_t * p_app_list_view = mui_mem_malloc (sizeof (app_list_view_t ));
164
176
165
177
ptr_array_init (p_app_list_view -> items );
166
178
p_app_list_view -> focus = 0 ;
179
+ p_app_list_view -> icon_anim_value = 0 ;
180
+ p_app_list_view -> name_anim_value = 0 ;
167
181
168
182
mui_anim_init (& p_app_list_view -> icon_anim );
169
183
mui_anim_set_var (& p_app_list_view -> icon_anim , p_app_list_view );
0 commit comments