Commit Graph

403 Commits

Author SHA1 Message Date
Gheorghe Pinzaru 38125173cb
Add Quo component library base
Add text component

Add header component

Change animated root ns

Add spacing design tokens

Add components preview

Add Readme

Add safe area components

Use reanimated from component library

Add colors tokens

Add inherit style for text

Add animated header component

A view with header which can be animated on scroll, used in walled, profile and contact screens

Persist previews navigation state

Rename component library into Quo

Document colors

Extend readme

Header handle long titles

Add InterStatus as monospace font

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-04-28 11:35:06 +03:00
Jakub Sokołowski 439643daa4
undo removing of preBuild gradle stop
This partially reverts commit 548fe04f54.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-24 20:15:02 +02:00
Jakub Sokołowski 548fe04f54
gradle: remove unused buck configuration
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-24 11:18:36 +02:00
Jakub Sokołowski 2a4641684f
fix Gradle plugin by upgrading to 3.5.3
We tried upgrading to 3.6.0 but it made app fail to start:
https://github.com/status-im/status-react/pull/10402

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-23 15:38:03 +02:00
Roman Volosovskyi 9d59d82869
Revert "gradle: upgrade plugin to 3.6.0"
This reverts commit 938f3df843.

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-04-22 14:11:05 +02:00
Jakub Sokołowski 938f3df843
gradle: upgrade plugin to 3.6.0
This is to fix incompatibility with new Gradle 5.6.4:
https://developer.android.com/studio/releases/gradle-plugin#updating-gradle

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-21 22:30:10 +02:00
yenda 23af624305
fix #10052 make finding the public key easier in profile
Signed-off-by: yenda <eric@status.im>
2020-04-16 13:33:49 +02:00
Vitaliy Vlasov e11385e350
Add web3.keycard.signTypedData
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2020-04-14 20:07:35 +03:00
Jakub Sokołowski 5c8a8e83ac
show proper error if nkd-build is missing
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-14 18:31:36 +02:00
Andrey Shovkoplyas 2122c5518f
fix colors android
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-03-27 15:36:09 +01:00
Andrey Shovkoplyas fb86b4d367
switch control color android
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-03-26 16:40:25 +01:00
Churikova Tetiana 68f0a02cbc
fix e2e
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-03-26 10:36:21 +01:00
Andrey Shovkoplyas a447bed4ac
dark mode 2020-03-26 08:34:13 +01:00
Vitaliy Vlasov dd7b3c21ae
Unlink webview
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2020-03-25 14:34:18 +02:00
Vitaliy Vlasov 85d0022b26
Use community WebView
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2020-03-24 18:07:03 +02:00
Gheorghe Pinzaru d24f4690b8
Fix failing test for navigation task
Handle default case for ens confirmation

Before navigation away the registration state is cleared and case does not handle default value for nil

Remove extra space on home button

Remove outdated options

Fix e2e

Change navigation replace arguments as per rn5

Fixes #10178

Dispatch navigation later

Do not restore state for react-native-screens

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-03-18 17:47:03 +03:00
Gheorghe Pinzaru d823a2082a
Update react navigation and rework wrapper
Get rid of navigation wrapper

Use new API to declare navigation

Update tabbar component

Update to use new navigation events

Add ios presentation modal

Navigation cleanups

Android specific updates

Use letsubs for stack subscriptions

Keycard did load event backward compatibility

Fix tabbar and wallet on-focus bad rebase

Do not keep welcome screen into the stack

Comment outdated test

Fix rebase on home PR

Cancel back button on screens which can't be popped

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-03-17 11:52:31 +03:00
Gheorghe Pinzaru 10fab4e77c
Add billing permission android
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-03-16 12:26:41 +03:00
Jakub Sokołowski de53581ef4
nix: don't generate keystore inside of Nix build
changes:
- Stops scripts/generate-keystore.sh runnig for every new TARGET=android shell
- Moves running scripts/generate-keystore.sh to keystore Makefile target
- Makes generate-keystore.sh accept STATUS_RELEASE_STORE_FILE as env variable
- Fixes error about missing lsof from start-react-native.sh
- Fixes error about unknown -keystore command in scripts/generate-keystore.sh
- Fixes getting OS_NAME without calling Nix shell
- Fixes getting TMP_BUILD_NUMBER without calling Nix shell
- Adds lsof used in start-react-native.sh to Android release Nix derivation
- Simplified how nix/scripts/build.sh appends the --keep flag
- Made use of colors.sh in more scripts

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-05 10:56:54 +01:00
Jakub Sokołowski cb78293db7
use Android keystore from Jenkins credentials
This way we don't have to store it on individual CI hosts.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-27 06:54:28 +01:00
Gheorghe Pinzaru c9d1adbc27
Add animation for keycard interaction
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-02-26 14:48:42 +03:00
Gheorghe Pinzaru 40c12241e0
Add bottom sheet to chat top bar options
Add bottom sheet to message long press

Make whole bottom sheet panel dragable

Fixes #9846

Use spring animation for bottom size of bottom sheet

Remove extra border height from bottom sheet

The height is already added to content height

Remove extra set value for animation

Timing and spring already mutates the animation value

Reuse chat bottom sheet in chat list

Update the size of new chat bottom sheet

Add remove to group chat

add chat id for clear history to be reused outside of current chat

Fix public chat bottom sheet missing destructoring

Replace icon for chat fetch history

Could be rotated arrow up, but this requires special handling in icons or list item

Fix remove public chat event

Dismiss keyboard on sheet mount

iOs rename arrow down icon

Fix unusable screen after close of bottom shet

The callback is called after 1.5 seconds after the animation starts. This happens because spring animation takes more time on animating post animation oscillations.

Add accessibility labels

Fix bad message destructoring

add view profile on long message press

Reset bottom value after animation

Remove pending circle from avatar in chat sheets

Do not show open profile on own messages

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-02-19 14:29:33 +03:00
Jakub Sokołowski 13c7f06317
don't multiply version codes by 1048576, could mess up upgrades
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-12 14:20:00 +01:00
Jakub Sokołowski 1ea49a80fc
rename get.status.im to join.status.im
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-11 18:09:21 +01:00
Gheorghe Pinzaru bddf3fa341
Remove outdated assets
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-01-23 13:54:11 +03:00
Gheorghe Pinzaru f34a7bc3f1
Restyle chat messages
Update the rounded corners on all messages

Update paddings and margin for message author

Move timestamp 3pt from bottom

Fix miss-placed padding in message author name

Add margin between emoji and timestamp

Change reply icon

Decrese font size of emoji message

Remove extra space in style map

Remove extra margin between author and message

Replace reply icon with glymph

Update Inter font to support new glyphs

Update paddings for reply author

Update timestamp padding from bottom

Added line-height explicitly to support it cross platform. Otherwise android and ios use different size.

Remove margin right space on usernames

Remove hardcoded width of messages

Use same line-height for all types of names

Add background to emoji

Bug in RN emoji cropped on smaller line-height https://github.com/facebook/react-native/issues/18559

Fix reply on user with ens name

Fix message margin top should be always 4

Add minimal fix for ui in ens name screen

Remove extra computations for timestamp position

Update e2e test

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-01-15 12:56:53 +03:00
yenda 84828891a0
Add chat commands
Signed-off-by: yenda <eric@status.im>
2020-01-10 20:13:19 +01:00
Maciej Zadykowicz 768e15a08e
swap icon, rename translation, tab icon
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-12-18 17:20:47 +01:00
Jakub Sokołowski e8b4ed4ca8
fixes for RN upgrade
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-04 17:10:14 +01:00
Roman Volosovskyi 907b35cedd
Migrate to RN 0.61.5
This change allows to fix status bar on iOS in dark mode #9470
2019-12-04 08:52:02 +02:00
Andrey Shovkoplyas 507cc5cf39
send transaction GUI
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-11-27 14:32:04 +01:00
Jakub Sokołowski b32dd113f6
nix: upgrade nixpkgs
Also:
- upgrade Go: 1.12 > 1.13
- upgrade Android SDK: 28.0.3 > 29.0.2
- nix: stop using system Fastlane for iOS builds
- nix: include CocoaPods in shell for iOS
- nix: concatenate shellHooks correctly
- fix gomobile status-go build by setting GO111MODULE=off
- fix gradle accepting empty STATUS_GO_SRC_OVERRIDE value
- don't use a pure shell for uploadToSauceLabs()

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:41 +01:00
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
Andrey Shovkoplyas ac60ef6c32
fix colors and launch screen
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-11-06 12:57:35 +01:00
Andrey Shovkoplyas acdad6d598
fixes animated gifs on Android
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: yenda <eric@status.im>
2019-11-01 13:05:03 +01:00
yenda 7bb45fdd8f
remove firebase
Signed-off-by: yenda <eric@status.im>
2019-10-29 15:03:58 +01:00
Andrey Shovkoplyas cbe17cbe02
[#8940] Redesign Back, swipe-to-the-left and hardware device Back buttons to align the behavior
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-18 17:27:03 +02:00
Andrey Shovkoplyas df098f82f6
[#8977] [Multi-account] Allow user to choose wallet for DApp transactions
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-11 11:08:56 +02:00
Marcus R. Brown 22de1f7490
Fix sticker pack installation buttons
- Fix sticker pack installation buttons
- Add "↓ Free" text and update "Install" text
- Distinguish between owned and free sticker sets
- Rename owned -> owned? in price-badge
- Add tiny-snt icon
- Update the sticker price badge icon and padding

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-09 08:25:29 +02:00
Andrey Shovkoplyas b3d04bb68c
[#8966] biometric
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-04 12:43:32 +02:00
Jakub Sokołowski 973623f4c8
build multiple APKs for different architectures
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-30 13:59:42 +02:00
Pedro Pombeiro 4f7cb549d9
Upgrade from hermesvm@0.1.1 to hermes-engine@0.2.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-16 17:07:52 +03:00
Pedro Pombeiro cc79cf3b3a
Enable Hermes in Android. Fixes #8952
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-12 16:15:11 +02:00
Pedro Pombeiro e4eabd2810
Migrate to use AndroidX 2019-09-12 16:13:43 +02:00
Pedro Pombeiro 9feb31bd3b
Upgrade react-native to 0.60.5
- Use community net-info, react-native-webview instead of deprecated react-native classes
- Remove react-native-tcp
- Upgrade react-native libs (react-native-camera, react-native-firebase, react-native-mail, react-native-udp, react-native-webview-bridge)
- Do not include `:react-native-android` module explicitly
- Take advantage of RN AutoLinking
- nix: Update Gradle dependencies
2019-09-12 16:13:42 +02:00
yenda 5db0a58ab8
remove unused deps and document the others
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-12 16:12:46 +02:00
Pedro Pombeiro 0ae1e7c8bd
Fix strip warning on release Android builds 2019-09-10 19:03:13 +02:00
yenda c3dd950286
remove realm
Signed-off-by: yenda <eric@status.im>
2019-09-09 18:40:15 +02:00
Pedro Pombeiro 66b982c3fb
Use react-native net-info community package
Signed-off-by: yenda <eric@status.im>
2019-09-05 14:16:28 +02:00
Pedro Pombeiro 58d310ffce
Remove RAM bundle support 2019-08-30 17:13:35 +02:00
Andrey Shovkoplyas 0288d617cb
[#8849] Use node-qrcode instead of react-native-qrcode 2019-08-29 15:53:44 +02:00
MajorTomSec 5dbac2b1d9
[Fix 8635] About showed "Version ()" instead of Version 0.14.0 (201908...) on Android
Fixes #8635 by adding VERSION and BUILD_NUMBER files in the correct nix
template and updating bash script in order to prevent it from failing,
due to the git repository being not initialized in the nix environment.

Move scripts/build_no.sh and scripts/gen_build_no.sh to
scripts/version/build_no.sh to prevent Nix from rebuilding when
unrelated scripts are touched.

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-26 12:51:50 +03:00
Pedro Pombeiro cfcbe6e5fb
Remove unused `android/app/react.gradle` and mapview leftovers
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-08-23 11:59:30 +02:00
Pedro Pombeiro 492f2df547
Move version definitions to gradle.properties
- Update minSdkVersion to 18
2019-08-15 11:18:38 +02:00
Pedro Pombeiro f691304b9d
Fix minor issues and typos in Android build process
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-08-01 19:34:33 +02:00
Andrey Shovkoplyas 1ec5d2b64b
[#8631] Fix sticker price UI
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-07-26 12:37:13 +02:00
Pedro Pombeiro a7fd659d84
nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
Vitaliy Vlasov e28202521f
Update launch logo
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-11 17:12:21 +03:00
Vitaliy Vlasov e9fd6e1a6b
Onboarding setup wizard
New onboarding e2e tests updates

New onboarding e2e fix 2

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-08 18:17:50 +03:00
yenda 2fd3fb96c7
[fix] missing icons in wallet
Signed-off-by: yenda <eric@status.im>
2019-07-01 14:06:55 +02:00
Vitaliy Vlasov 4f6e06bf59
Use react-native-screens
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-01 09:30:19 +03:00
Roman Volosovskyi ae52fd07f4
add back tooltip-triangle icon 2019-06-24 17:35:40 +03:00
Pedro Pombeiro fad5f318cf
Ensure shell.nix uses same nixpkgs as the rest of the environment
also remove gradle wrapper

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-20 09:18:24 -04:00
Roman Volosovskyi 2ad4c9c054
upgrade react-navigation 2019-06-19 12:00:22 +03:00
Roman Volosovskyi 6da2c93a41
[mobile] switch to png icons 2019-06-18 15:10:10 +03:00
Igor Mandrigin 23702dc1e7
[android] ignore the gms version from `react-native-http-bridge`.
`react-native-http-bridge` has an unbound dependency on GMS,
that sometimes brings unnecessary transitive dependencies to our builds.

This commit forces to ignore this depencency.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-06-18 12:55:18 +02:00
Jakub Sokołowski eb4ba4c50e
drop x86 and x86_64 for non-e2e or dev builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-11 13:30:49 -04:00
Pedro Pombeiro 1457f0f017
Some changes from the node2nix test branch that don't need to be there
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-06-06 19:13:31 +02:00
tbenr 090a4e7c76
fixes #6573
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-31 10:25:24 +02:00
Roman Volosovskyi c7c7b50281
RAM bundle basic setup 2019-05-27 17:34:17 +03:00
Roman Volosovskyi b0be9ee976
Send logs on shaking device 2019-05-24 13:35:04 +03:00
bitsikka d640b4c87c
[7947] Feature: Blank out app preview screen when switching apps on mobile
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-22 15:31:50 +02:00
Igor Mandrigin 68fc93a935
android: add adaptive icon for non-debug builds
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-20 17:23:57 +02:00
Pedro Pombeiro c59f372ef3
Disable PNG optimization on Android builds, for reproducibility
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-14 15:49:31 +02:00
Roman Volosovskyi ff39426e56
[android] send logs to error-reports@status.im 2019-05-10 17:02:58 +03:00
Andrea Maria Piana 441989f168
Make pr build debuggable
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-08 14:47:04 +02:00
Julien Eluard 99172607d5
[Fixes #7325] Add EIP681 deeplink support
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-08 14:44:24 +02:00
Pedro Pombeiro 49fbf21f8d
Split status-go Nix package per platform so rebuilds are faster
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-06 14:40:23 +02:00
Jakub Sokołowski 1d00e9bb3d
change App ID for PRs on Android to avoid replacing release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-10 11:49:40 +02:00
Pedro Pombeiro f048b8a80d
Use gradle 4.10.2 package from nixpkgs so the wrapper doesn't need to download it 2019-04-09 12:44:39 +02:00
Pedro Pombeiro 65e6e80349
Create Nix package for building status-go 2019-04-09 12:44:39 +02:00
Roman Volosovskyi 24a978d442
Migrate to RN 0.59.2 2019-04-01 17:42:57 +03:00
yenda 496f3f1cc7
[design] use Inter font on Android
- implement typography component
- replace InterUI font by Inter font (renaming)

Signed-off-by: yenda <eric@status.im>
2019-03-20 18:42:31 +01:00
Andrea Maria Piana f446dbd585
Remove read profile android permission
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-03-15 13:21:48 +01:00
tbenr b1331378d5
fixes #6597
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-03-06 17:09:58 +01:00
Roman Volosovskyi 159c57a21d
Set #FFFFFF as default background color on Android 2019-02-25 14:22:47 +02:00
Igor Mandrigin c0f5bd14de
Revert "change App ID for PRs on Android to avoid replacing release"
This reverts commit 6a7efb8339.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-13 10:12:51 +01:00
Jakub Sokołowski 6a7efb8339
change App ID for PRs on Android to avoid replacing release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-12 13:24:24 +01:00
kn 6988950ea8
[#6973] Replace react-native-i18n with react-native-languages 2019-02-09 23:27:46 -08:00
Igor Mandrigin fafecfe95a
Get rid of StatusService.
StatusService was only used to handle `signalEvent:` from status-go.
This commit simplifies this interaction and getting rid of the service
and all the problems that come with it.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-29 12:01:05 +01:00
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02:00
Jakub Sokołowski b51b565cdb
add dockerimage for building android
- remove unused android-ndk toolchains
- add build.sh and test target for easy testing of image
- separate generic parts into a base image
- pass keystore credentials via env variables

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-16 17:36:13 +01:00
Roman Volosovskyi 2777809db9
enable saving password on android
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-08 17:40:00 +01:00
Pedro Pombeiro 9d21cf143e
Add Send Logs command. Closes #6710
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-08 09:48:56 +01:00
Dmitry Novotochinov 962c49e345
add keycard installation
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-12-20 15:43:37 +03:00
shamardy fdb808a7dc
Added animated GIF support on android
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-12-17 13:33:55 +01:00
Jakub Sokołowski 411a74e040
add mvnrepository.com for gradle
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-10 21:04:38 +01:00
Pedro Pombeiro 8d2818017c
Only disable gradle daemon on CI, and install recommended npm version 2018-11-26 23:03:30 +01:00
Jakub Sokołowski 01c8d9b25b
stop using build-* git tags for counting build numbers
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-21 13:43:12 +01:00
Andrey Shovkoplyas e09476f5d3
added Inter UI font and made some cleanup
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-11-06 16:46:58 +01:00