status-mobile/nix
yenda 36ad6fb762
support for local notification service on Android
- add option in profile on Android to enable local notifications
- use foreground service to keep the app alive when running in the background
- implement enable and disbable notification function in status module

When enabling notifications, a foreground service is started that displays
a sticky notification to make the user aware that the app is running in the
background.
Notifications are updated whenever a new.message signal is handled on java side.
Currently only one to one chats are generating notifications but that can be
easily extended to other types of messages, including mentions and keywords.
The ens name of the user as well as keywords to follow should then be passed
to the native side when calling the enable function.

Signed-off-by: yenda <eric@status.im>
2019-11-07 09:59:12 +01:00
..
desktop desktop builds need GnuPG 2019-10-17 11:03:41 +02:00
lein remove dev-server and extensions for v1 2019-08-20 17:42:02 +02:00
mobile support for local notification service on Android 2019-11-07 09:59:12 +01:00
patched-go upgrade Go: 1.11 > 1.12 2019-09-30 11:57:57 +02:00
status-go don't use SHA1s as status-go version 2019-11-06 21:46:02 +01:00
targets [Fix 8635] About showed "Version ()" instead of Version 0.14.0 (201908...) on Android 2019-08-26 12:51:50 +03:00
tools Use react-native net-info community package 2019-09-05 14:16:28 +02:00
README.md add info about MacOS Catalina workaround 2019-10-16 09:12:33 +02:00
bootstrapped-shell.nix nix: Apply some nixfmt suggestions and fix macOS status-go buildInputs 2019-07-29 18:01:07 +02:00
build.sh customize TMPDIR and clean it 2019-10-18 09:40:11 +02:00
clean.sh nix: Use a more standard name the patched Gradle and NPM package 2019-09-14 00:10:51 +02:00
derivation.nix upgrade Go: 1.11 > 1.12 2019-09-30 11:57:57 +02:00
nix.conf build status-go for Nix cache 2019-07-23 01:01:41 -04:00
nixpkgs-bootstrap.nix upgrade Go: 1.11 > 1.12 2019-09-30 11:57:57 +02:00
platform.nix nix: Apply some nixfmt suggestions and fix macOS status-go buildInputs 2019-07-29 18:01:07 +02:00
shell.sh Fix Android build on macOS 2019-09-12 16:13:42 +02:00
utils.nix nix: Apply some nixfmt suggestions and fix macOS status-go buildInputs 2019-07-29 18:01:07 +02:00

README.md

Description

This folder contains configuration for Nix, a purely functional package manager used by the Status app for its build process.

Configuration

The main config file is nix/nix.conf and its main purpose is defining the binary caches which allow download of packages to avoid having to compile them yourself locally.

NOTE: If you are in Asia you might want to add the https://nix-cache-cn.status.im/ to be first in order of substituters. Removing cache.nixos.org could also help.

Shell

In order to access an interactive Nix shell a user should run make shell.

The Nix shell is started in this repo via the nix/shell.sh script, which is a wrapper around the nix-shell command and is intended for use with our main Makefile. This allows for an implicit use of nix-shell as the default shell in the Makefile.

By default the shell starts without any specific target platform, if you want to change that you should export the TARGET_OS env variable with the right value:

make shell TARGET_OS=android

This way your shell and all other nix commands should run in a setup that is tailored towards Android development.

For valid values you can check the nix/platform.nix file.

Known Issues

MacOS 10.15 "Catalina"

There is an unsolved issue with the root(/) file system in 10.15 being read-only: https://github.com/NixOS/nix/issues/2925

Our current recommended workaround is putting /nix under /opt/nix and symlinking it via /etc/synthetic.conf:

sudo mkdir /opt/nix
sudo chown ${USER} /opt/nix
sudo sh -c "echo 'nix\t/opt/nix' >> /etc/synthetic.conf"
reboot

After the system reboots you should see the /nix symlink in place:

 % ls -l /nix
lrwxr-xr-x  1 root  wheel  8 Oct 11 13:53 /nix -> /opt/nix

In order to be able to use Nix with a symlinked /nix you need to include this in your shell:

export NIX_IGNORE_SYMLINK_STORE=1

Add it to your .bashrc or any other shell config file.

NOTE: Your old /nix directory will end up in /Users/Shared/Relocated Items/Security/nix after OS upgrade.