Code Monkey home page Code Monkey logo

mudita / muditaos Goto Github PK

View Code? Open in Web Editor NEW
616.0 33.0 70.0 741.77 MB

Mobile operating system based on FreeRTOS™ optimized for E Ink displays - developed for Mudita Pure minimalist phone

Home Page: https://mudita.com/products/pure/muditaos

License: Other

CMake 1.06% C++ 35.65% C 61.65% Shell 0.24% GDB 0.01% Python 0.78% PLpgSQL 0.23% Assembly 0.03% Lua 0.32% HTML 0.02% CSS 0.02% Dockerfile 0.01%
e-ink embedded-systems os phone mobile freertos cpp embedded-c minimalist

muditaos's Introduction

MuditaOS

Follow Twitter

MuditaOS is a mobile operating system optimized for E Ink displays. Built on FreeRTOS™ with Mudita Pure minimalist phone in mind.

MuditaOS interface screenshots

Products

There are two released products based on MuditaOS:

  1. PurePhone - low distraction phone with rich key features
  2. Mudita Harmony - eink based distraction free alarm clock.

Table of contents

Contributing

Pull requests are welcome. Please follow the guidelines in the "Contributing to MuditaOS" article. Before contributing or starting a discussion, please make sure that you read our Code of Conduct.

Discussions

For general questions and ideas regarding MuditaOS please post in the “MuditaOS” section on Mudita Forum. Please explore all existing posts to make sure you’re not posting about an issue that has already been discussed.

Reporting bugs and feature requests

You can report bugs and feature requests on GitHub. This is also a good place to discuss architecture decisions and things that aren’t yet covered by the documentation. Please refer to the "Contributing to MuditaOS" article for more details.

Internationalization

If you want to start localizing MuditaOS interface please start from the "Internationalization" article.

Development environment setup

To develop MuditaOS please follow guide on environment setup

Development workflow

When contributing code or documentation changes please follow the guidelines inside the "Development workflow" article.

Documentation

For everything you need to kick-start your development environment please go to the Documentation on GitHub.

A fully detailed documentation can be build locally using Doxygen.

Changelog

The MuditaOS changelog - Pure edition describes releases of the Pure's version of MuditaOS. Description of Harmony's version of the OS can be found here: MuditaOS changelog - Harmony edition

License

MuditaOS is licensed under GNU GPLv3.

muditaos's People

Contributors

alekrudnik avatar asleszyn avatar awulkiew avatar dawidwojtas-mudita avatar grzyw-o-mat avatar hubert-chrzaniuk avatar jimmorrisson avatar kkleczkowski avatar lefucjusz avatar lskrzypczak avatar lucckb avatar maciej-mudita avatar marziel avatar mpsm avatar paweljonskim avatar pawpmudita avatar pholat avatar przebrudny avatar rborzeck avatar robertpiet avatar rwicik avatar sp2fet avatar swichu91 avatar szmrmdt avatar tigransoghbatyan-digica avatar tomaszkrosnowski avatar tomaszrogala avatar tomaszrybarski-digica avatar wojtekidd avatar wsovalle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

muditaos's Issues

Vietnamese localization 🇻🇳

🏳 Create a new localization

Adding Vietnamese localization

📝 Describe the solution you'd like

I'd like to initiate the localization for Vietnamese.

Other Notes

The Internationalization page mentions GT Pressura, but after giving it a look I realized that Vietnamese isn't automatically supported out of the box.

However, I've never done localization before. I know of translating other apps via services like Weblate, but this seems a lot more involved than merely submitting corresponding translation strings in the browser.

It also appears that building simulated Pure OS test builds will be necessary to compare the English and translated language side-by-side in order to ensure the translations are correct as verification by hand. As I understand it, it can be difficult to determine a prior how the English strings are contextually in Pure OS used from even the English .json file - comparing the both the English and translation would better inform the translations.

If reading this correctly, Mudita has its own version/fork of Fontbuilder specific for the Mudita Pure. (There is also additional PureOS simulation information.)

[EGD-7252] German: first line of app_settings_display_factory_reset_confirmation not displayed

🐛 Bug report

📝 Description

On the factory reset page the German translation string for app_settings_display_factory_reset_confirmation consists of three lines. Only the last two lines are displayed, i.e.

um es auf die Werkseinstellungen zurückzusetzen.\n Jetzt neu starten?

instead of

Das Telefon muss ausgeschaltet werden, \num es auf die Werkseinstellungen zurückzusetzen.\n Jetzt neu starten?

🔬 Minimal reproduction

  • Run the Pure simulator with ./PurePhone.elf.
  • Go to Settings -> System -> Language
  • Select "Deutsch"
  • Go to Einstellungen -> System -> "Auf Werkseinstellung zuruckset-" [sic]
  • Observe the text

🌍 Your operating system and MuditaOS version

my OS: Guix System
MuditaOS: commit: 8a767f3 tag: release-0.75.1-rc1 branch: master

Product option missing for configuration scripts

🐛 Bug report

First try building MuditaOS

📝 Description

I am giving a build of MuditaOS a first try and I get this error, both for the docker as local approach if I follow the instructions from the docs:

$ ./configure.sh linux Debug
Wrong product: "linux"
Wrong target: "Debug"
stop

👍 Expected behavior

It should build the image/executable

👎 Current behavior

Error saying wrong product and target

🔬 Minimal reproduction

$ ./configure.sh linux Debug
Wrong product: "linux"
Wrong target: "Debug"
stop

or

$ ./in_docker.sh config linux Debug

🔍 Provide logs

🌍 Your operating system and MuditaOS version

Ubuntu 20.04 LTS

🤔 Anything else relevant?

Looking at the configure.sh help I see there needs to be a product option added to the command:

$ ./configure.sh --help
Use this script for faster configuring build types
ussage:
	./configure.sh [-dh] <product> <target> <build_type> [other cmake options]
options:
			d		- turn on development features
			h		- print this help
available products are:
			pure
			bell
available targets are:
			linux
			rt1051
available build types:
			Debug		- standard debug build
			Release		- release build (not for debugging)
			RelWithDebInfo	- release with debug info in separate file

Running it with pure as product option make it continue...

$ ./configure.sh pure linux Debug 
build dir:
	build-purephone-linux-Debug
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/home/mattiash/src/MuditaOS/Target_Linux.cmake -DPRODUCT=PurePhone 

code quality: designated initializers are not standard C++17

⚠️ Code Quality Issue

📝 Description

In many locations (in just about every module-* project) designated initializers are used when initializing structures. While this does function, it is not valid C++17 code.

Example
struct {
int x;
int y;
} a = { .y = 9 };

📝 Describe the solution you'd like

Ideally, on should simply abide C++17 aggregate initialization or utilize constexpr constructors to initialize the data without additional overhead.

📝 Describe alternatives you've considered

You could change the project to C++20 because designated initializers were added in C++20. Then again, if you aren't sticklers then you can just ignore the use non-standard code.

Need help in building image, missing fsl_common.h

⚠️ Fails at 80% of make: could not find fsl_common.h

📝 Description

To make ./configure linux RelWithDebInfo pass I had to install some -devel packages, namely libgtkmm-3-devel and fuse2-devel (I'm running SolusOS, a rolling release Linux distro). With this and previously installed -devel packages the configure stage finished successfully, but when I got to 80% of make in the build folder, i get this fatal error:

~/Mudita/MuditaOS/third-party/usb_stack/device/usb.h:14:10: fatal error: fsl_common.h: could not be found

Any ideas how to continue the build?

📝 Describe the solution you'd like

Figure out what package needs to be installed in my OS or in Ubuntu to continue the build.

📝 Describe alternatives you've considered

Building in Docker instead, haven't tried yet.

mcopy fails to copy to PurePhone.img with mtools version 4.0.33

⚠️ Setting up infrastructure

📝 Description

After finally reaching 100% on make -j 4 Pure I now get the following error:

[100%] Generate PurePhone.img
Checking that no-one is using this disk right now ... OK

Disk /home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img: 14.6 GiB, 15678308352 bytes, 30621696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x09650eb4.
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img1: Created a new partition 1 of type 'W95 FAT32' and of size 1 GiB.
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img2: Created a new partition 2 of type 'Unknown' and of size 1 GiB.
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img3: Created a new partition 3 of type 'Unknown' and of size 12.6 GiB.
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img4: Done.

New situation:
Disklabel type: dos
Disk identifier: 0x09650eb4

Device                                                         Boot   Start      End  Sectors  Size Id Type
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img1 *       2048  2099199  2097152    1G  b W95 
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img2      2099200  4196351  2097152    1G 9e unkn
/home/killian/Mudita/MuditaOS/build-linux-Debug/PurePhone.img3      4196352 30621695 26425344 12.6G 9e unkn

The partition table has been altered.
Syncing disks.
mcopy: No directory slots
mcopy: No directory slots
mcopy: No directory slots
mcopy: No directory slots
mcopy: No directory slots
mcopy: No directory slots
mcopy: No directory slots
make[3]: *** [products/PurePhone/CMakeFiles/Pure.dir/build.make:76: products/PurePhone/PurePhone.img] Error 1
make[2]: *** [CMakeFiles/Makefile2:9546: products/PurePhone/CMakeFiles/Pure.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:9553: products/PurePhone/CMakeFiles/Pure.dir/rule] Error 2
make: *** [Makefile:3104: Pure] Error 2

running mtools --version returns the following info:

mtools (GNU mtools) 4.0.33
configured with the following options: enable-xdf disable-vold disable-new-vold disable-debug enable-raw-term 

📝 Describe the solution you'd like

I'd like to figure why make exits with error 2 and how to avoid this.

📝 Solution

with mtools version 4.0.24 the build process works fine. Possibly related: https://bugs.archlinux.org/task/71547

Japanese localization 🇯🇵

Created on behalf of one of our community members

I am very interested in using the Mudita Phone in Japan. For this
purpose, Japanese character input is necessary for the address book, SMS
and other text input. A Japanese OS is not necessary.

I have to admit that I have hardly any programming knowledge so I cannot
estimate the efforts that would be required to implement Japanese
character input. However, I am aware that several input systems exist,
also open-source solutions which I used under Linux.

I would appreciate if you could figure out whether an implementation of
the Japanese character input would be feasible.
Of course, if there is anything I could do to support this process, I
would be glad to contribute.

How to port to Raspberry Pi Zero (ZeroPhone)?

📚 Missing or unclear documentation

📝 Description

Please provide documentation on how to port MuditaOS to other platforms such as Raspberry Pi Zero (BCM2835), which powers ZeroPhone with some e-paper display (e.g. Waveshare).

📝 Describe the solution you'd like

There is a port of FreeRTOS for BCM2835 and another one, but maybe it would be easier to start off with the Linux port.

As an open source project, the OS shouldn't be tied to a single board. Thanks!

Confirm dialog when leaving notes application edit mode

🚀 Feature request

📝 Description

When user is editing a note and has done some changes / added new content. Then the user presses accidentally "back" button instead of the "save" button and all the changes are lost.

📝 Describe the solution you'd like

User is prompted with confirm dialog "Continue without saving?" / "Discard changes?" / etc.", when back button is pressed in the edit mode, if there is any changes.

📝 Describe alternatives you've considered

No separate save button and everything is saved when leaving the edit mode, but then on the other hand there is no way to "cancel" the changes that were made.

sfdisk when building

Scanning dependencies of target disk_image
[100%] Generate /home/sandra/skami/mudita/lwip/MuditaOS/build-linux-Debug/PurePhone.img
Error! sfdisk is not installed, please use 'sudo apt install' for install required tool

On Debian and derivs (tested on Ubuntu 20.04.2 LTS), sfdisk is installed but not in the path or env. It's in /sbin. As a workaround I can make it availables in the path (uh, it's only for the image file, right? Not gonna repartition my system any time soon…).

[EGD-5985] Quickstart

📚 Missing or unclear documentation

📝 Description

In the Quickstart for Linux, here is what's happening:

When doing

git submodule update --init --recursive

it fails because of the magic_enum repo is not readable.

Then, when doing

./configure linux Debug

it fails beacuse test/googletest and test/Catch2 does not contain CMakeLists.txt files, and also one of the includes in line 11 of test/CMakeLists.txt fails.

Then, there is no makefile in the build-dir, (a.k.a. in build-linux-Debug).

🔗 Link to an article that could be improved

https://github.com/mudita/MuditaOS/blob/master/doc/quickstart.md#quickstart-in-your-local-environment

Panjabi/ Punjabi Localization

🏳 Create a new localization

Panjabi/ Punjabi

📝 Describe the solution you'd like

I would like to contribute to localizing it with Panjabi/ Punjabi language, used mostly in Punjab (India), Punjab (Pakistan), Canada, the U.K., and Australia amongst many others.

Quickstart article for macOS machines

📚 Missing or unclear documentation

📝 Description

MuditaOS documentation is currently missing a quick start guide to set up the development environment and Pure emulator on macOS machines.

📝 Describe the solution you'd like

A Quickstart guide similar to what we have in the Quickstart section, but for macOS machines.

🔗 Link to an article that could be improved

Quickstart section

Proposal: Reproducible build environment with GNU Guix

🚀 Feature request

📝 Description

To minimize problems in setting up a suitable build environment on all GNU+Linux systems I suggest adding a GNU Guix environment file to set up a reproducible environment that will be identical on all GNU+Linux systems.

📝 Describe the solution you'd like

Instead of running the bootstrap script to install build dependencies I suggest a simplification: hackers would just run guix environment -l guix.scm to enter a reproducible environment containing all packages and tools, including the cross compiler toolchain.

This can be done in addition to the current way of using scripts to download and build tools.

I have created the following guix.scm file for this purpose and used it successfully on Guix System to build the PurePhone emulator:

;;; Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
;;; For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
;;
;;; Run the following command to enter a reproducible development
;;; environment for hacking on MuditaOS.
;;;
;;;  $ guix environment -l guix.scm
;;;
;;; This file has been tested with Guix commit
;;; b95fb85f593d377864fc1bfb3c118e54d03783be

(use-modules ((guix licenses) #:prefix license:)
             (guix packages)
             (guix git-download)
             (guix utils)
             (guix build-system cmake)
             (gnu packages)
             (gnu packages audio)
             (gnu packages cmake)
             (gnu packages check)
             (gnu packages documentation)
             (gnu packages embedded)
             (gnu packages gcc)
             (gnu packages graphviz)
             (gnu packages gtk)
             (gnu packages linux)
             (gnu packages maths)
             (gnu packages mtools)
             (gnu packages pkg-config)
             (gnu packages protobuf)
             (gnu packages rsync))

(package
  (name "muditaos")
  (version "0.74.1")
  (source #false)
  (build-system cmake-build-system)
  (arguments
   `(#:cmake ,cmake
     #:configure-flags
     (list "-DCMAKE_TOOLCHAIN_FILE=Target_Linux.cmake"
           "-DCMAKE_EXPORT_COMPILE_COMMANDS=1"
           (string-append "-DBLKID_INCLUDE_DIR="
                          (assoc-ref %build-inputs "util-linux")
                          "/include/blkid"))))
  (inputs
   `(("gsl" ,gsl)
     ("gtkmm" ,gtkmm)
     ("portaudio" ,portaudio)
     ("protobuf" ,protobuf)))
  (native-inputs
   `(("cmake" ,cmake)
     ;; Only for cross builds
     ("xgcc-toolchain" ,arm-none-eabi-toolchain-7-2018-q2-update)
     ;; Only for native builds
     ("gcc" ,gcc-10)
     ("catch2" ,catch-framework2)
     ("doxygen" ,doxygen)
     ("fuse" ,fuse)
     ("graphviz" ,graphviz) ; for dot (used by doxygen)
     ("mtools" ,mtools)
     ("pkg-config" ,pkg-config)
     ("rsync" ,rsync)
     ("util-linux" ,util-linux "lib")))
  (home-page "https://mudita.com/products/pure/muditaos")
  (synopsis "Mobile operating system for Mudita Pure minimalist phone")
  (description "MuditaOS is a mobile operating system based on
FreeRTOS.  It is optimized for E Ink displays and is developed for the
Mudita Pure minimalist phone.")
  (license license:gpl3+))

This will work on all GNU+Linux distributions as long as Guix is installed.

📝 Describe alternatives you've considered

The alternative is the status quo.

[EGD-7251] Embedded images in documentation may be unreadable

📚 Documentation bug

📝 Description

Images generated using PlantUML have an unspecified background color resulting in a transparent background. When they are embedded and displayed in GitHub Markdown documents, text within the images can become unreadable when GitHub is configured to display using a dark theme.

📝 Describe the solution you'd like

Ensure all PlantUML generated images specify a background color.
PR #2504 fixes the issue.

🔗 Link to an article that could be improved

Example document with issue.

Screenshot of problem

Screenshot

Screenshot after being fixed

Fixed screenshot

Script used to modify and regenerate images

Notes:

  • After every @startuml the line skinparam BackgroundColor F0F0F0 is added
  • An errant @startuml was manually removed from module-apps/application-desktop/doc/appdesktop_unhandledcmeflow.pu
  • It will detect if a png or svg image already exists and regenerate it accordingly.
  • It prints out two separate git commands to use when completed, one for PlantUML files and one for the regenerated images.
#!/bin/bash

commits=""
bin_commits=""
# search all first-party files except *.svg and *.txt
for file in `grep -rl "@startuml" * | grep -v "^third-party" | grep -v "svg$" | grep -v "txt$"`
do
  png_file=`echo $file | sed -e "s/\.[a-z]\{2,4\}/\.png/"`
  svg_file=`echo $file | sed -e "s/\.[a-z]\{2,4\}/\.svg/"`

  git restore $file
  commits+=" $file"
  sed -e "s/@startuml/@startuml\nskinparam BackgroundColor F0F0F0/g" $file > result.tmp
  mv result.tmp $file

  if [ -f $svg_file ]
  then
    git restore $svg_file
    bin_commits+=" $svg_file"
    plantuml -tsvg $file
  fi

  if [ -f $png_file ]
  then
    git restore $png_file
    bin_commits+=" $png_file"
    plantuml -tpng $file
  fi

  echo $file
done

echo git commit $commits
echo git commit $bin_commits

Mashes causes crashes

🐛 Bug report

📝 Description

On main screen things freeze up after mashing numbers.

👍 Expected behavior

When mashing one or a couple of number keys, the console prints out "Ignore request for window LockedInfoWindow we are on window MainWindow" and prints out unlocking instructions. And "back" (a.k.a. E on the emulator) takes me back to main screen, and SOS takes me to the Emergency Calls screen.

👎 Current behavior

After too many numbers—which doesn't take much, just a few too many—this stops working. Either on the main screen and it doesn't go to unlock anymore, or on the unlock instruction screen and it won't let you go "back" or "SOS" anymore.

The emulator itself hasn't crashed, or at least not wholly, since it still displays battery level changes, both on screen and in the emulator's text console.

🔬 Minimal reproduction

Launch emulator and mash numbers. Try to navigate.

🌍 Your operating system and MuditaOS version

Ubuntu 20.04.2 LTS. MuditaOS: fresh clone from master, on commit 9db85fb.

🤔 Anything else relevant?

PS how do I hit the center key? To unlock from the main screen or to browse ICE from the SOS screen. Trying to find it was how I discovered the behavior in this issue.

Workflow: automatic build not executing

⚠️ Workflow issue

📝 Description

I have multiple PRs (e.g. #2504) that have been approved and I rebased them but the Jenkins remains stuck with the status "Expected — Waiting for status to be reported ". I've followed the workflow pattern to the best of my ability but I'm stumped here.

📝 Describe the solution you'd like

I'd like someone to tell me what I'm failing to do or doing improperly.

📝 Describe alternatives you've considered

Maybe Jenkins refuses forks that aren't from "mudita" on GitHub.

[EGD-5852] Deutsch localization 🇩🇪

📝 Deutsch localization

Hi !
I see there’s already a file for the Deutsch localization, which is actually in english, so I guess there’s some work to do !
I can start working on it if there is no one already on it ?

Custom repeat, kind of weird workflow

Hold off on this one for version one! Not urgent!

So for every repeat intervall other than custom repeat, you select it and then you save.
For custom repeat, when you select that, an edit button suddenly appears. Very clever.
But, ideally, the center button should become edit if there is no custom days set.

Then, once you HAVE set some custom days, THEN let's get save in the center, edit on the side key.

This is a good first issue probably. Maybe I could tackle this one eventually

Unable to unlock simulator

📚 Missing or unclear documentation

📝 Description

The page https://github.com/mudita/MuditaOS/blob/master/doc/howto_simulator.md is missing details on how to unlock PureLock when running in the simulator.

https://github.com/mudita/MuditaOS/blob/master/doc/host_keyboard_bindings.md Also doesn't have any clear details.

📝 Describe the solution you'd like

If someone could tell me how to unlock it I can send a PR improving the documentation.

🔗 Link to an article that could be improved

https://github.com/mudita/MuditaOS/blob/master/doc/howto_simulator.md
https://github.com/mudita/MuditaOS/blob/master/doc/host_keyboard_bindings.md

Finnish localization 🇫🇮

Hello!

I will start working on the Finnish localization!

Is the simulator sufficient to test that the words will fit and appear correctly on the screen?

Application idea - TOTP Generator

🚀 Feature request

I think it would be nice to add TOTP (Time-base One-Time Password) Generator application.

📝 Description

Time-base One-Time Passwords are widely used in 2FA. It would be nice to add this feature to the system.

There are some things to consider:

  1. Seeds for TOTP should be kept in some secure storage (preferable encrypted).
  2. Simple interface - list of items (options to delete seed and add new).

Any thoughts?
I can contribute and add this feature to the system in my spare time :)

Returns to main menu on first battery decrease

🐛 Bug report

📝 Description

Be in any tool, such as notes, calculator, message, with 100% battery. Have the battery decrease on the emu. The UI will go back one level.

This bug doesn't reoccur on subsequent battery decreases, even if the battery is reincreased to 100. Only the first time it happens.

🔍 Provide logs


24181 ms DEBUG MonthBox.cpp:MonthBox:81: MonthBox constructor Completed Successfully!
24182 ms DEBUG Settings.cpp:handleVariableChanged:50: handleVariableChanged
24182 ms DEBUG Settings.cpp:handleVariableChanged:54: handleVariableChanged: (k=v): (gs_lock_screen_passcode_is_on=1)
24182 ms DEBUG ApplicationCalendar.cpp:DataReceivedHandler:69: Received notification
24188 ms DEBUG MonthBox.cpp:MonthBox:22: Call MonthBox constructor
24207 ms DEBUG MonthBox.cpp:MonthBox:81: MonthBox constructor Completed Successfully!
24208 ms DEBUG Application.cpp:handleSwitchWindow:411: Current window: MainWindow vs MainWindow
24208 ms DEBUG CalendarMainWindow.cpp:filterRequest:204: filter:  2021-04-01 00:00:00
24209 ms DEBUG ApplicationCalendar.cpp:DataReceivedHandler:69: Received notification
24222 ms DEBUG MonthBox.cpp:MonthBox:22: Call MonthBox constructor
24238 ms DEBUG MonthBox.cpp:MonthBox:81: MonthBox constructor Completed Successfully!
27636 ms INFO  EventManager.cpp:operator():276: Battery level: 99 , charging: 0
27636 ms INFO  SystemManager.cpp:operator():406: Battery level normal.
27636 ms ERROR Bus.cpp:SendUnicast:86: Service ServiceCellular doesn't exist
27636 ms INFO  ActionsRegistry.cpp:enqueue:53: Enqueue action DisplayLowBatteryNotification
27636 ms INFO  ApplicationManager.cpp:requestApplicationClose:471: Closing application ApplicationCalendar
27636 ms INFO  ActionsRegistry.cpp:notifyAboutNextAction:75: Pending action DisplayLowBatteryNotification to ApplicationDesktop
27636 ms INFO  ApplicationManager.cpp:startApplication:361: Switching focus to application [ApplicationDesktop] (window [])
27637 ms DEBUG Application.cpp:handleApplicationSwitch:352: AppSwitch: ApplicationDesktop
27637 ms INFO  Application.cpp:handleApplicationSwitch:360: target Window:  : target description: 
27637 ms DEBUG Application.cpp:handleSwitchWindow:411: Current window: MenuWindow vs MenuWindow
27638 ms INFO  ApplicationManager.cpp:closeService:405: Service/Application ApplicationCalendar closed
27638 ms DEBUG Settings.cpp:unregisterValueChange:174: [Settings::unregisterValueChange] gs_lock_screen_passcode_is_on
27638 ms INFO  Settings.cpp:unregisterValueChange:179: Unregistered all settings variable change on application (ApplicationCalendar)
27638 ms DEBUG Service.cpp:~Service:71: ApplicationCalendar:Service base destructor
27638 ms INFO  ApplicationManager.cpp:handleSwitchConfirmation:746: Switch confirmed by ApplicationDesktop (ACTIVE_FORGROUND).
27639 ms DEBUG SettingsAgent.cpp:handleUnregisterOnVariableChange:276: [SettingsAgent::handleUnregisterOnVariableChange] gs_lock_screen_passcode_is_on
27639 ms INFO  EventManager.cpp:DataReceivedHandler:126: Switching focus to ApplicationDesktop
27640 ms INFO  ActionsRegistry.cpp:finished:87: Finished action DisplayLowBatteryNotification on ApplicationDesktop

🤔 Anything else relevant?

Seems the reason is becaues it wants to run DisplayLowBatteryNotification and therefore closes the current application to show it at the desktop. It's not great that battery isn't visible in message threads, for example. I can see hiding it in the meditation timer, though. IDK.

Danish localization 🇩🇰

🏳 Create a new localization

Danish

📝 Describe the solution you'd like

I would like to add the danish localization to the project

CMake version requirement too high

⚠️ Create other issue

📝 Description

The minimum required version of CMake is CMake 3.19.5 which if too recent for popular Linux distributions.

📝 Describe the solution you'd like

Regenerate the file with CMake 3.18.4 or lower, CMake 3.16.3 is suggested (version from Ubuntu LTS).

📝 Describe alternatives you've considered

With Debian or Ubuntu, the current way around this is to either download pre-built CMake binaries and shoehorn (a real pain) them into your system or build CMake.

Duplicate localisation strings

Here a list of the duplicate localisation strings.

  • Alarm clock app_alarm_clock_title_main + app_desktop_menu_alarm (all caps) + app_settings_apps_alarm_clock
  • Calendar app_calendar_title_main + app_desktop_menu_calendar (all caps) + app_settings_apps_calendar
  • Calculator app_calculator_title_main + app_desktop_tools_calculator (all caps)
  • Calls app_calllog_title_main + app_desktop_menu_phone (all caps) + app_desktop_calls (all caps)
  • Contacts app_desktop_menu_contacts (all caps) + app_phonebook_title_main
  • Custom app_alarm_clock_repeat_custom + app_calendar_repeat_custom + app_settings_display_wallpaper_quotes_custom
  • Delete app_alarm_clock_options_delete + app_calendar_options_delete + app_notes_delete_note + app_settings_apn_options_delete + app_phonebook_options_delete
  • Do not disturb home_modes_notdisturb + app_settings_title_do_not_disturb
  • Edit app_alarm_clock_options_edit + app_alarm_clock_edit (all caps) + app_calendar_options_edit + app_calendar_edit (all caps) + app_notes_edit + app_settings_apn_options_edit
  • Emergency call app_call_emergency_text + app_call_emergency
  • Every day app_alarm_clock_repeat_everyday + app_calendar_repeat_daily
  • Information common_information + app_phonebook_contact_information + app_desktop_info
  • Messages app_desktop_menu_messages (all caps) + app_messages_title_main + app_settings_apps_messages
  • Message only home_modes_message_only + app_settings_messages_only
  • Month app_calendar_bar_month (all caps) + app_settings_title_month
  • Muted app_popup_muted_text (all caps) + app_call_muted (all caps)
  • Never app_calendar_repeat_never + app_calendar_reminder_never + app_alarm_clock_repeat_never
  • Note app_settings_display_wallpaper_quotes_note + app_phonebook_new_contact_note
  • Notes app_notes_title_main + app_desktop_tools_notes (all caps)
  • Offline home_modes_offline + app_settings_title_offline
  • Options common_options (all caps) + app_alarm_clock_options_title + app_settings_display_wallpaper_quotes_options + app_settings_apn_options + app_phonebook_options_title
  • Repeat app_calendar_event_detail_repeat + app_alarm_clock_repeat
  • Reply app_desktop_replay (all caps) + sms_reply (all caps) + sms_temp_reply
  • Settings app_settings_title_main_new + app_desktop_menu_settings_new (all caps)
  • Sound app_alarm_clock_sound + app_settings_sound
  • Templates app_messages_templates + app_settings_Templates
  • Volume app_popup_volume_text (all caps) + app_settings_volume

These are the duplicate strings I found so far. Will update the list if I find more.

I don't know if in the UI framework it is possible to transform a string to all capital letters? But if it it means less strings for the translators and in the end easier to maintain.

Maybe next weekend I will dive into changing all duplicate localised strings in code.

[EGD-7255] Vector image rendering flaw

🐛 Bug report

📝 Description

In module-gui/gui/core/DrawCommand.cpp the drawVecMap function does not render large or (potentially) wide VecMap image correctly.

👍 Expected behavior

When assigning uint16_t vecOffset and uint16_t vecCount the source of data is should be static_cast to const uint16_t * before dereferencing.

👎 Current behavior

By not doing this only a uint8_t value is taken. Which means...

  • A VecMap image with a height exceeding 255 pixels will be Modulus 256 pixels.
  • If there is a gap larger than 255 pixels then the image will be Modulus 256 pixels.

🔬 Minimal reproduction

  • Use a VecMap image with a height exceeding 255 pixels.
  • Use a VecMap image with a gap exceeding 255 pixels.

🤔 Anything else relevant?

PR #3322 fixes this issue.

Adding glyphs

📚 Missing or unclear documentation

📝 Description

The documentation for internationalization talks about adding glyphs, but it is not clear how to add them

📝 Describe the solution you'd like

Either add a more step by step description, and all the required files (the fonts are not included either)
Or - the preferred solution
Add the charset file to the project, and add the font generation as a step on merge to master

🔗 Link to an article that could be improved

https://github.com/mudita/MuditaOS/blob/master/doc/i18n.md#adding-glyphs

Missing words on English localization 🇬🇧

Hello,

I was doing Finnish localization and there was some texts that didn't apparently have key value pair in English localization.

Some of these are probably developer features and there is no need for translation in my opinion, but it would be nice if the developer features were tagged with [DEV] or something.

Here is what I collected:

Settings->Advanced

  • Information (DEV?)
  • UI TEST (DEV?)
  • SIM SELECT (DEV?)
  • Fota update (DEV?)
  • Color test (DEV?, all the sub texts were translated though)

Settings->Display and keypad->Display light

  • Light intensity (DEV?)
  • Manual brightness (DEV?)

Settings->Network

  • Network (in menu title)

Settings->Phone modes

  • PhoneModes (in menu title)

Settings->Phone modes->Offline->Connection Frequency

  • ConnectionFrequency (in menu title)

Settings->System

  • System (in menu title)

Contacts

  • Favourites

Contacts->ContactCard

  • FAVOURITES
  • SPEED DIAL

Also maybe some of the templates could be translatable ( messages etc.)?

[EGD-7253] Broken links in multiple pages in documentation

📚 Missing or unclear documentation

📝 Description

In several different documents there are broken links, some to subsections and others to different documents.
Also, multiple older markdown documents incorrectly use HTML anchors instead of markdown generated anchors.

📝 Describe the solution you'd like

The links should be fixed.
The HTML anchors should be removed and their ToCs should be updated.

📝 Additional Information

PR #2456 fixes these.

[EGD-5006] French localization 🇫🇷

Hi there !
I see there’s already a file for the french localization, which is actually in english, so I guess there’s some work to do !
I can start working on it asap, just wanted to know if it’s better do to multiple small PR or only one big PR, when the whole file is translated ?
Maybe it’s better if I do multiple small PR so everyone can contribute and work in the same time ?

[EGD-5313] Unclear Licensing

📝 Description

While README mentions that MuditaOS is licensed under GPLv3, it is unclear to which parts of the code does it apply. LICENSE.md mentions "All rights reserved" too.

In addition, a lot of source code files contain headers with "(c) Mudita All rights reserved", while I've not seen any mentioning GPL.

📝 Describe the solution you'd like

It would be great, if the license which applies to the codebase was made clear (i.e. it was clearly stated in the README that some code is proprietary), or the headers were fixed (if that code is not supposed to be Mudita-proprietary).

Jenkins: build not triggered

⚠️ Jenkins problem

📝 Description

I've made multiple pull requests that were approved (#2380, #2381, #2382) but none of them seem to get built by Jenkins so they are blocked from getting merged. Is there something I'm not doing that I should be doing?

📝 Describe the solution you'd like

Fix Jenkins or explain what I'm doing wrong.

📝 Describe alternatives you've considered

Holding my breath until I pass out.

Back maybe switch sides?

Isn't it kinda weird that back is on the right side and forward is in the middle and, uh, "special" is on the left side? I find myself misclicking all the time. Now, I ain't the sharpest tool in the proverbial, but still.

For example, on Custom Repeat, the keys are Uncheck, Save, and Back, in that order.

I guess it's because center is the huge key in the middle of the keypad.

Romanian localization 🇷🇴

I started working on Romanian localization for MuditaOS. Might be a bit slow because, well, life happens. Will try to keep you all updated in this thread.

[EGD-7254] Submodule update script fails

🐛 Bug report

📝 Description

The submodule update script (UpdateSubmodules.sh) is completely inoperable.

👍 Expected behavior

The script should update the default branch of each submodule.

👎 Current behavior

It prints the git usage screen.

🔬 Minimal reproduction

Run UpdateSubmodules.sh

🤔 Anything else relevant?

PR #2408 fixes this.

Adding a new alarm

🐛 Bug report

📝 Description

When user adds a new alarm the added alarm will be +3 hours in alarms list.

👍 Expected behavior

New alarm is set to the exact time set by the user.

👎 Current behavior

New alarm is set +3 hours from the time that is set by the user

🔬 Minimal reproduction

  1. Go to Menu -> Alarm
  2. Add alarm ( + )
  3. Set time and save
  4. The new alarm is +3 hours from the user set value

🔍 Provide logs

Please paste relevant logs below or attach them to this issue.


606738 ms DEBUG ApplicationAlarmClock.cpp:DataReceivedHandler:40: Received notification
606740 ms DEBUG AlarmsModel.cpp:getItem:43: Empty record in AlarmsModel::GetItem

🌍 Your operating system and MuditaOS version

Ubuntu 20.04.2 LTS
commit: 35a280a tag: release-0.66.1-7-g35a280a0b

🤔 Anything else relevant?

Tested on timezone GMT+2 ( 8:45 PM )
MuditaOS time ( 9:45 PM )

The default time in set new alarm "form" is -3h from the MuditaOS time.

[EGD-5397] Italian localization 🇮🇹

Hi everybody! Just a quick note to let you know I'll be starting on the italian localization in the next few days.
If anything comes up and/or you want to contribute please drop a line down below.
Cheers🙂

Incorrect title when deleting a note

🐛 Bug report

📝 Description

When user is deleting a note the confirm dialog title is set incorrectly

👍 Expected behavior

Title is empty / Title shows some part of the note from the beginning

👎 Current behavior

Title is "Alarm Clock"

🔬 Minimal reproduction

  1. Go to Menu -> Tools -> Notes
  2. Select Options on one of the notes
  3. Select Delete

🔍 Provide logs

Please paste relevant logs below or attach them to this issue.


180481 ms DEBUG OptionWindow.cpp:onBeforeShow:120: Options load!
194681 ms DEBUG Application.cpp:pushWindow:867: App: ApplicationNotes window ConfirmDialog request
194681 ms ERROR RichTextParser.cpp:parse:527: no: text
194681 ms DEBUG Application.cpp:handleSwitchWindow:511: Current window: ConfirmDialog vs ConfirmDialog
194681 ms DEBUG Application.cpp:handleAppRefresh:575: Ignore request for window Options we are on window ConfirmDialog

🌍 Your operating system and MuditaOS version

Ubuntu 20.04.2 LTS
commit: 35a280a tag: release-0.66.1-7-g35a280a0b

🤔 Anything else relevant?

Hungarian localization 🇭🇺

🇭🇺 Hungarian Localisation

📝 Localising Display and Keyboard Input language

Plan of action:

  1. Localised display language
  2. Refine display-language localisation
  3. Localise keyboard input language
  4. Glyph inclusion

Font localisation

Based on font supported list of glyphs all Hungarian characters are included https://www.grillitype.com/api/storage/app/uploads/public/5b6/c52/16b/5b6c5216b40a8675629257.pdf

However it appears Űű and Őő while present in the font, they are missing from glyphs included in the system, which requires and update to the list of included glyphs as well.

License violation in the bluetooth stack

MuditaOS is using Bluekitchen, but the license is explicitely non-commercial:

  1. Any redistribution, use, or modification is done solely for
    personal benefit and not for any commercial purpose or for
    monetary gain.

Turkish localization 🇹🇷

Greetings!

I would like start working on the Turkish localisation. Excited to be able to directly contribute to my (hopefully) future communications device!

I noticed that some of the Turkish letters are not yet supported in the current character set, after finishing the localisation, I hope to take a shot at that too.

[EGD-6250] Freezes on "Special Characters" (on the emu)

🐛 Bug report

📝 Description

When trying to toggle between upper and lower case, even with a pretty short press the special characters window open, and then the app freezes.

Emu still responds to battery changes.

🔍 Provide logs

Please paste relevant logs below or attach them to this issue.


61053 ms DEBUG Application.cpp:handleApplicationSwitch:352: AppSwitch: ApplicationSpecialInput
61053 ms INFO  Application.cpp:handleApplicationSwitch:360: target Window:  : target description: 
61053 ms DEBUG Application.cpp:handleSwitchWindow:411: Current window: MainWindow vs MainWindow
61056 ms INFO  ApplicationManager.cpp:handleSwitchConfirmation:746: Switch confirmed by ApplicationSpecialInput (ACTIVE_FORGROUND).
61058 ms INFO  EventManager.cpp:DataReceivedHandler:126: Switching focus to ApplicationSpecialInput
61068 ms DEBUG Application.cpp:handleSwitchWindow:411: Current window: MainWindow vs MainWindow
61069 ms INFO  ActionsRegistry.cpp:finished:87: Finished action ShowSpecialInput on ApplicationSpecialInput
65705 ms INFO  EventManager.cpp:operator():276: Battery level: 91 , charging: 0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.