8
8
#include <input/input.h>
9
9
#include <gui/elements.h>
10
10
#include <dolphin/dolphin.h>
11
+ #include <datetime/datetime.h>
11
12
12
13
struct ColorGuessPlay {
13
14
View * view ;
@@ -53,9 +54,9 @@ void color_guess_play_new_round(void* context, ColorGuessPlayModel* model) {
53
54
furi_assert (context );
54
55
ColorGuess * app = context ;
55
56
//Reset timer
56
- FuriHalRtcDateTime date_time ;
57
+ DateTime date_time ;
57
58
furi_hal_rtc_get_datetime (& date_time );
58
- model -> timestamp_start = furi_hal_rtc_datetime_to_timestamp (& date_time );
59
+ model -> timestamp_start = datetime_datetime_to_timestamp (& date_time );
59
60
model -> success = 0 ;
60
61
model -> closeness = 0 ;
61
62
model -> prev_closeness = 0 ;
@@ -152,9 +153,9 @@ void color_guess_play_draw(Canvas* canvas, ColorGuessPlayModel* model) {
152
153
}
153
154
const int cursorOffset = 30 ;
154
155
const int newCursorPos = (model -> cursorpos * 12 ) + cursorOffset ;
155
- FuriHalRtcDateTime date_time ;
156
+ DateTime date_time ;
156
157
furi_hal_rtc_get_datetime (& date_time );
157
- uint32_t timestamp = furi_hal_rtc_datetime_to_timestamp (& date_time );
158
+ uint32_t timestamp = datetime_datetime_to_timestamp (& date_time );
158
159
uint32_t time_elapsed = timestamp - model -> timestamp_start ;
159
160
model -> time_spent = time_elapsed ;
160
161
@@ -213,9 +214,11 @@ bool color_guess_play_input(InputEvent* event, void* context) {
213
214
instance -> view ,
214
215
ColorGuessPlayModel * model ,
215
216
{
216
- model -> cursorpos -- ;
217
- if (model -> cursorpos < 0 ) {
218
- model -> cursorpos = 5 ;
217
+ if (model -> success != 1 ) {
218
+ model -> cursorpos -- ;
219
+ if (model -> cursorpos < 0 ) {
220
+ model -> cursorpos = 5 ;
221
+ }
219
222
}
220
223
},
221
224
true);
@@ -225,9 +228,11 @@ bool color_guess_play_input(InputEvent* event, void* context) {
225
228
instance -> view ,
226
229
ColorGuessPlayModel * model ,
227
230
{
228
- model -> cursorpos ++ ;
229
- if (model -> cursorpos > 5 ) {
230
- model -> cursorpos = 0 ;
231
+ if (model -> success != 1 ) {
232
+ model -> cursorpos ++ ;
233
+ if (model -> cursorpos > 5 ) {
234
+ model -> cursorpos = 0 ;
235
+ }
231
236
}
232
237
},
233
238
true);
@@ -237,12 +242,14 @@ bool color_guess_play_input(InputEvent* event, void* context) {
237
242
instance -> view ,
238
243
ColorGuessPlayModel * model ,
239
244
{
240
- model -> digit [model -> cursorpos ]++ ;
241
- if (model -> digit [model -> cursorpos ] > 15 ) {
242
- model -> digit [model -> cursorpos ] = 0 ;
245
+ if (model -> success != 1 ) {
246
+ model -> digit [model -> cursorpos ]++ ;
247
+ if (model -> digit [model -> cursorpos ] > 15 ) {
248
+ model -> digit [model -> cursorpos ] = 0 ;
249
+ }
250
+ color_guess_play_calculate_closeness (instance , model );
251
+ play_haptic (instance -> context , model );
243
252
}
244
- color_guess_play_calculate_closeness (instance , model );
245
- play_haptic (instance -> context , model );
246
253
},
247
254
true);
248
255
break ;
@@ -251,12 +258,14 @@ bool color_guess_play_input(InputEvent* event, void* context) {
251
258
instance -> view ,
252
259
ColorGuessPlayModel * model ,
253
260
{
254
- model -> digit [model -> cursorpos ]-- ;
255
- if (model -> digit [model -> cursorpos ] < 0 ) {
256
- model -> digit [model -> cursorpos ] = 15 ;
261
+ if (model -> success != 1 ) {
262
+ model -> digit [model -> cursorpos ]-- ;
263
+ if (model -> digit [model -> cursorpos ] < 0 ) {
264
+ model -> digit [model -> cursorpos ] = 15 ;
265
+ }
266
+ color_guess_play_calculate_closeness (instance , model );
267
+ play_haptic (instance -> context , model );
257
268
}
258
- color_guess_play_calculate_closeness (instance , model );
259
- play_haptic (instance -> context , model );
260
269
},
261
270
true);
262
271
break ;
@@ -322,7 +331,7 @@ void color_guess_play_free(ColorGuessPlay* instance) {
322
331
furi_assert (instance );
323
332
324
333
with_view_model (
325
- instance -> view , ColorGuessPlayModel * model , { free (model -> digit ); }, true);
334
+ instance -> view , ColorGuessPlayModel * model , { free (model ); }, true);
326
335
view_free (instance -> view );
327
336
free (instance );
328
337
}
0 commit comments