Commit Graph

1395 Commits

Author SHA1 Message Date
Léa Saviot
90f2e5beed [ion/sdl] Do not process more than one buffered event
Scenario:
Make an infinite loop script (while 1 : 1+1) and run it. Input 1234567
then press Back to interrupt the infinite loop -> the script execution
stops, then 1234567 is input in the input line, which is quite weird. It
is even weirder when the key pressed during the [script execution / a
long computation] result in navigation inside the calculator apps.
2020-03-11 15:36:52 +01:00
Léa Saviot
9ab3558cfe [ion/events_keyboard] Remove unused cases 2020-03-11 15:36:52 +01:00
Léa Saviot
1242258992 [ion] Handle key events in all simulators as in EPSILON_SDL_SCREEN_ONLY
This way, physical keyboard events can be caught by python on all
simulators
2020-03-11 15:36:52 +01:00
Léa Saviot
4a4ba52e38 [ion/events] Better handling of Shift on the web target 2020-03-11 15:36:52 +01:00
Léa Saviot
18f3054b50 [ion/simulator/web] Do not duplicate events in scan and getPlatformEvent
Some events were caught by bith scan() and getPlatformEvent()
2020-03-11 15:36:52 +01:00
Léa Saviot
a7d419c4bd [ion/emscripten] Get physical keyboard events in scan() 2020-03-11 15:36:52 +01:00
Neven Sajko
f74ed8ecd7 [ion] Fix error check in the USB stack
The return type of the function receiveSomeData needs to be wider so the
-1 error value could fit.

Fixes #1335
2020-02-26 11:09:43 +01:00
Émilie Feral
c8cbd9475d [ion] android Makefile: declare targets as PHONY 2020-02-25 17:37:29 -05:00
Émilie Feral
a92ee368c5 [ion] ios Makefile: fix code-signing with new certificates 2020-02-25 17:37:29 -05:00
Émilie Feral
a7c26ce3a8 [ion] ios Makefile: fix codesigning 2020-02-25 17:37:29 -05:00
Émilie Feral
558e2734f0 [ion] Android Makefile: fix rule for libepsilon 2020-02-25 17:37:29 -05:00
Émilie Feral
92a3e07643 [ion] Enable to build official and unofficial softwares for ios and
macos platform
2020-02-25 17:37:29 -05:00
Émilie Feral
4aace23362 [ion] Makefile of android: enable to build epsilon.apk and
epsilon.official.apk
2020-02-25 17:37:29 -05:00
Émilie Feral
be0b2787b4 [ion] Web Makefile: simulator.html expects a epsilon.js file and not a
epsilon.official.js file
2020-02-25 17:37:29 -05:00
Émilie Feral
1e81a944e3 [build] Web: enable to build target simulator.official.zip and
epsilon.official.js
2020-02-25 17:37:29 -05:00
Léa Saviot
c377491c7f [ion/simulator.html] Fix digits clickable area position
When resizing the window, the clickable zone would drift from the
buttons.
2020-02-25 15:16:53 +01:00
Léa Saviot
238eeb8106 [ion/web] Fix keyboard buttons positions 2020-02-25 15:16:53 +01:00
Léa Saviot
526a9e550c [ion/simulator/web] The buttons should appear in the browser window
When the window height is very small, there are still some problems with
the buttons, that are half out of the window
2020-02-25 15:16:53 +01:00
Léa Saviot
754110d5c6 [ion/simulator/web] Change background 2020-02-25 15:16:53 +01:00
Léa Saviot
18d6ad34bc Revert "[ion/sdl/web] Fix the HTML page actions"
This reverts commit 5796a0d930.
2020-02-25 15:16:53 +01:00
Romain Goyet
553eaaeac0 [ion] Fix telemetry on iOS and Android 2020-02-17 10:31:24 -05:00
Romain Goyet
670490e642 [ion] Add a telemetry API 2020-02-17 10:31:24 -05:00
Romain Goyet
aa0dbee303 [ion] Console::writeLine can ommit trailing CR/LF 2020-02-17 10:31:24 -05:00
Léa Saviot
b8f65442db [ion/simulator] Keyboard shift + left/right/up/down now works 2020-02-12 15:13:25 +01:00
Émilie Feral
0c55ea4531 [ion] unicode: UTF8Helper::CopyAndRemoveCodePoints returns a boolean
which is true if the whole source was copied
2020-02-12 15:13:24 +01:00
Léa Saviot
ae3fa46191 [escher/text_field] Fix handling of \n
The buffer length did not take into account the \n removal. In fact, we
could just remove the \n while also removing the empty code points,
which is what we do now.
2020-02-12 15:13:24 +01:00
Ruben Dashyan
844a28db7b [poincare/parsing/tokenizer] Token::Identifiers may contain Greek letters except pi 2020-02-12 15:13:23 +01:00
Léa Saviot
b29d014695 [escher/text_field] Fix removing of \n in insertTextAtLocation
Scenario: Copy a text with \n (for instance from a script), then paste
it in a script name -> if \n are replaed with \0 instead of just being
removed, there are problems with the extension
2020-02-12 15:13:23 +01:00
Ruben Dashyan
179ce5d5d5 [ion/unicode/codepoint] Rename is[(Lower|Upper)Case]Letter to isLatin[(Small|Capital)]Letter
to conform with unicode terminology
2020-02-12 15:13:23 +01:00
Ruben Dashyan
575b911da9 [ion/unicode] Split isDigit into isDecimalDigit, isBinaryDigit, isHexadecimalDigit 2020-02-12 15:13:23 +01:00
Ruben Dashyan
9b0b4e3096 [ion/unicode] Define and use CodePoint const methods
isLowerCaseLetter
isUpperCaseLetter
isLetter
isDigit

Remove similar ones from UTF8Helper and from Poincare::Tokenizer.
2020-02-12 15:13:23 +01:00
Léa Saviot
244c7b31eb [ion/web] Fix screenshots 2020-02-12 15:13:23 +01:00
Léa Saviot
d70c4c7205 [ion] Typo 2020-02-12 15:13:22 +01:00
Léa Saviot
9d6bab092f [poincare/parser] Identifier is not already function -> symbol
We check the context: if an identifier is already a function, we
interpret it as such, otherwise it is a symbol.
This way, in the Equation app, x(x+1) is interpreted as x*(x+1)
2020-02-12 15:13:21 +01:00
Émilie Feral
a1b2cbb0a9 [ion] Unicode: clean warning 2020-02-12 15:13:19 +01:00
Émilie Feral
b33a778ccb [ion] N0110 linker script: fix symbol name of section
internal_to_external
2020-02-12 15:13:18 +01:00
Léa Saviot
c03c9086b8 [ion/utf8_helper] Add FIXME comment 2020-02-12 15:13:18 +01:00
Léa Saviot
8cf13adaf0 [apps/editor_controller] Handle deleted scripts in cleanStorageEmptySpace 2020-02-12 15:13:18 +01:00
Léa Saviot
961ba10122 [ion/events] shift+Left/Right/Up/Down can be repeated 2020-02-12 15:13:17 +01:00
Léa Saviot
30923ed4c6 [escher/text_area] Select up/down 2020-02-12 15:13:17 +01:00
Léa Saviot
ab48f8d879 [ion/events] if shift/alpha pressed, it is active
No need to press shift between ezach event -> one long shift press keeps
it active
2020-02-12 15:13:17 +01:00
Léa Saviot
bb69b2c131 [ion/events_modifier] Reindent 2020-02-12 15:13:17 +01:00
Léa Saviot
0209c6d2d4 [ion/storage] Increase size to 32K 2020-02-12 15:13:16 +01:00
Léa Saviot
4ffcace024 [ion/storage] Add TODO about code optimization 2020-02-12 15:13:16 +01:00
Léa Saviot
7e801906b8 [test/ion] Add Storage available space moving test 2020-02-12 15:13:16 +01:00
Léa Saviot
5853e96947 [apps/code] Remove EditorController::m_areaBuffer
This was a very large buffer that took a lot of RAM space (the size of
the storage). Instead of having it, we just move the available space of
the storage at the end of the edited script, and move it back when the
edition finishes.
This is slower but saves a lot of space.
2020-02-12 15:13:16 +01:00
Léa Saviot
b9bc9008ac [ion] Detect long repeated events
This will be use for instance to sroll faster if the user presses the
directional keys for a long time
2020-02-12 15:13:15 +01:00
Léa Saviot
973c2149d4 [ion/battery] Battery level has some hysteresis
This prevents a blinking battery pictogra wwhen the battery level is at
the limit between two states.
2020-02-12 15:13:15 +01:00
Ruben Dashyan
c3cf5c1ef4 Rename UCodePointUnknownX to UCodePointUnknown 2020-02-12 15:13:15 +01:00
Léa Saviot
78eea601c7 [ion/device] Prevent the user from leaving DFU during software download
We prevent the use of the Back key to leave DFU after a flash erase
operation. This way, we prevent the user from interrupting a software
download. After every software download, the calculator resets, which
unlocks the "exit on pressing back"
2020-02-12 15:13:15 +01:00