Skip to content

Commit

Permalink
Release v1.2.4 (#358)
Browse files Browse the repository at this point in the history
* emoji selector wip

* Improve selector transitions

* Better selector, add color buttons and avatar

* Rename EmojiSheet -> AvatarBuilder

* replace colorCircle, add fixed header and color animator

* replace flatlist with recyclerlistview in EmojiSelector and add basic functionalities

* add categories tab blocker

* add profile masthead set props for avatar builder

* add saving selected emoji to redux

* fix eslint for files and remove old emojiselector

* fix default color issue

* add saving emoji and color into local storage

* make initial loading shorter by rewriting rendering method

* fix overscroll emoji list issue

* add loading emoji placeholder and wallet screen avatar

* fix spaces between white lines

* change sticky header style to remove overlay

* fix initial value for scrollPosition

* Revert "Revert "Merge pull request #252 from rainbow-me/@jin/send-remove-redux""

This reverts commit 7838066.

* Consolidate send sheet and send sheet with data

* Use hooks for SendSheet

* Cleanup of setState functions

* rewrite button press animation

* Fix gesture state

* opacity and longpress

* state machine

* Decrease animation duration, increase scaleTo values

* Fix all issues

* fix interpolation

* Revert ProfileAction scaleTo change

* Utilize useMemoOne for creation of animated Values inside ButtonPressAnimation

* slightly opinionated refactoring of Michals latest BPA rewrite

* use State enum instead of numbers for BPA state machine

* Fix broken BPA onPress functionality

* add new styles for swap transactions

* add missing transaction types

* change arrow icon for received transactions

* consolidate SwapIcon assets and add "small" boolean flag

* Add color to "received" swap status badges to match design spec

* Ignore error from wallet eth zero check while importing

* try procs

* Reduce default ButtonPressAnimation duration

* finish

* fix edge issue

* add pending request count to determine isEmpty variable

* Update stack and use native stack where possible (#308)

* bump yarn

* Rename BPA procs and fix lint

* Remove tests from hooks and add linting and testing to travis instead of e2e (currently broken)

* Fix BPA

* Show cTokens in balances

* Add experimental discover sheet skeleton (#321)

* Add discover sheet

* redash

* Fix bottom sheet

* Add experimental config

Co-authored-by: Christian Baroni <christianbaroni@me.com>

* Bump screens and stack

* Bump reanimated

* New experimental ExpandedState's with charts (#247)

* Follow up with native changes after bumping

* fix framework not found InputMask issue

* fix jest-setup

* bump react navigation stack

* merge value charts into follow up

* fix import in modal

* add tap recognize for value chart

* add handling for modal closure while touching chart

* add handling for modal dismiss in chart and fix eslint

* change size values to keep path ratio

* little design changes to keep loading line in the middle of chart box

* add change of line width during touch animation

* remove initial loading size change

* initial implementation of new layout for value charts

* fade in-out min-max values in chart

* initial implementation for smooth changing charts

* add handling for non existant data in dataset

* remodel awaits to make downloade new charts possible

* logic for setState new charts fix

* add better switching between tap and pan

* add simply data function to make 288 point charts and change data

* change timestaps logic for simpified charts

* add activity indicator for chart loading

* remove high interval rule

* fix animation

* State.FAILED

* change logic to remove unnecessary delay

* bump cubic-spline to 3.0.3

* add loading state and open modal faster

* add margin values in chart

* new touchX calculation for shrinken chart

* add arrow instead of up text

* add sf pro rounded font

* change animation to spring and rotate arrows

* add default values for initial loading

* improve timespan selector moving animation

* improve time selector circle

* remove unused things

* yarn.lock

* Add charts to experimental

Co-authored-by: Michał Osadnik <micosa97@gmail.com>
Co-authored-by: Wojciech Stanisz <42337257+wojtus7@users.noreply.github.com>
Co-authored-by: Christian Baroni <christianbaroni@me.com>

* Bump reanimated

* Fix fetching of currencies

* Replace componentWillReceiveProps with getDerivedStateFromProps in SendContactList.js

* Fix focusing on selecting currency

* Native transaction list and configurable clickable view (#325)

I think, that the current implementation of the list is production-ready. I've made some testing on the emulator and it feels way more robust than the initial JS implementation. Hope it will meet your expectations. Aside from that, in the last few commits, you may find a NativeButton component which is nothing other than a ButtonPressAnimation component re-implemented in Swift (as we discussed with @osdnk).

I would love to receive your feedback and adjust details for the list and/or button if needed. There are some tiny things that can be improved (code-wise), but they shouldn't anyhow interfere with the business logic of the app, so the PR is safe to merge.

* Remove margin bottom from marginBottom

* Fixes for swap and pending transactions (#323)

* Clarify variable name for uniswap assets in wallet

* Fix for deduping pending transactions using nonce

* Remove assets with 0 quantity after merge with existing assets

* Replacing parseFloat with bignumber operations for swap

* Fix for adding year only for previous years (#326)

* Bump RLV and resolve strange render in send asset list (#324)

* bump RLV and resolve strange indexing in send asset list

* revert update keys in send asset list

* minor RLV list cleanup (#327)

* Bump react-navigation-tabs

* Revert "Bump react-navigation-tabs"

This reverts commit bdc8213.

* Remove blurring from UnderlineField (#329)

* Initial android implementation (#328)

* Make dedicated stack from SendSheet (#330)

streamable.com/dmmsx

* Fix focusing keyboard with non-native stack

* Add keyboardShouldPersistTaps to SendContactList

* Update ethers version (#335)

* added script to restart the packager in a clean state (#338)

* make send flow work in simulator (#337)

* bump and patch react-native-svg (#339)

* Feat: Watch pending transactions (#336)

* watch pending transactions

* clean up

* Error handling for watching transactions

Co-authored-by: Jin <jin.chung17@gmail.com>

* Feat: Optimize gas price (#341)

* handle send flow and exchange

* support walletconnect txs

* reorder imports

* clean up

* remmove unused import

* Create SwapDetailsState modal

* Improve FloatingEmojis

* Add lock icon to TokenSelectionButton and remove UnlockAssetButton

* Add e a s t e r   e g g  to SwapDetails

* Make SwapDetailsState refocus input on previous route when unmounting

* Prevent undefined exception in OfflineBadge

* Prevent FloatingEmojis from crashing experimental transactions list

* Add back in the swap execution rate logic that got deleted somehow

* Updates related to react-navigation-stack's migration to vanilla Animated

react-navigation-stack recently dropped support for `reanimated` and moved back to using vanila Animated.
- refactor FloatingEmojis components to allow receiving vanilla Animated values

* Include swap execution details after currency selection

# Conflicts:
#	src/screens/ExchangeModal.js

* Use unlock creation time to determine most recent time remaining

* Fix for floating emojis on profile masthead

# Conflicts:
#	src/components/floating-emojis/FloatingEmojis.js

* Restructure navigators

* fix exchange stack navigator

* fix floating emojis in swapdetails

* add transparent background behind swap details

* fix ExchangeModalNavigator's gestures' blocking

* patch react-native vibration module (#340)

* initial implementation of native dynamic profileMasthead

* lint only staged files (#343)

* Feat: Add networking debugging (#344)

* add networking debugging

* comment exceptions

* Fix minor keyboard glitch when dismissing SwapDetails

* Networking debugging (#345)

* turn off debug flags by default

* improve timeout detection

* Update debug.js

* fix block polling (#346)

* New value charts colorful (#334)

Added new charts sections, and new API that enables you to personalize chart by selecting:

mode: "gesture-managed" / "detailed" / "simplified"

enableSelect: bool - enable checking the value in touched point of the chart

amountOfPathPoints: number - the number of points for switch between charts

onValueUpdate: func - a callback that returns the value in touched point on the chart

barColor: color - specify a color for the touch select bar

stroke: { detailed: number, simplified: number } - enables you to specify width of chart line

data: object - provide data for the chart

Also, this PR links new SF rounded fonts

* add support for dynamic emotes and colors in profile header

* Bump stack

* fix margin size

* fix disappearing sticky header on load modal

* Add overflow: visible to expandedPreset

* update fastlane to latest version (#347)

* Add animation to UIButton for selecting emojis

* Enhance scale

* Update RoundedCornerView.swift

* Fix emojis

* fix styling for RLV

* Move constant to the top of the file

* Remove hacks

* Migrate to ProgressiveListView

* moar clean up

* Add isEmulatorSync warn

* Add to experimental and fix minor issues

* fix flags is Swift

* Update TabBar.js

* fix styling for color circle when native button is enabled

* Update app icon (#350)

* Remove unnecessary calls for Uniswap liquidity info (#354)

* Remove unnecessary calls for Uniswap liquidity info

* Rename rainbow2 back to rainbow

* add sentry logging for keychain errors (#353)

* Update fastfile and set release for Sentry (#356)

* Fix app crash on open of ReceiveModal (#357)

* Fix overlay asset screen in not native stack

* upgrade deps + include deps needed for add cash

* Fix app crash on open of ReceiveModal

* Prevent undefined errors related to our usage of RecyclerListView

* Fix native stacks for iOS version 13.3.1

Co-authored-by: Michał Osadnik <micosa97@gmail.com>
Co-authored-by: Bruno Barbieri <brunobar79@gmail.com>

Co-authored-by: Christian Baroni <christianbaroni@me.com>
Co-authored-by: Wojciech Stanisz <42337257+wojtus7@users.noreply.github.com>
Co-authored-by: Michał Osadnik <micosa97@gmail.com>
Co-authored-by: Michael Demarais <m.demarais@gmail.com>
Co-authored-by: Alexey Kureev <a.g.kureev@gmail.com>
Co-authored-by: Bruno Barbieri <brunobar79@gmail.com>
  • Loading branch information
7 people authored Feb 12, 2020
1 parent d9671bc commit a37cbb1
Show file tree
Hide file tree
Showing 1,203 changed files with 22,997 additions and 4,336 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1 @@
*.pbxproj -text
*.pbxproj -text merge=union
78 changes: 44 additions & 34 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
matrix:
include:
- language: objective-c
osx_image: xcode10.2
xcode_sdk: iphonesimulator12.2
xcode_destination: platform=iOS Simulator,OS=12.2,name=iPhone X
env: NODE_VERSION=10.15.3

branches:
only:
- master

cache: yarn

install:
- nvm --version
- echo $NODE_VERSION
- sudo launchctl limit maxfiles 2048 unlimited
- sudo ulimit -n 10000
- brew tap wix/brew
- brew install applesimutils
- brew update
- brew install watchman
- nvm install $NODE_VERSION
- nvm use $NODE_VERSION
- nvm alias default $NODE_VERSION
- brew install yarn
- yarn global add react-native-cli
- yarn global add detox-cli
- yarn
- yarn nodeify
- pod repo update
- yarn install-pods
- watchman watch-del-all
- FORCE_BUNDLING=1 detox build -c ios.sim.release
- language: node_js
node_js:
- 10
cache:
directories:
- node_modules
script:
- detox test -c ios.sim.release --no-color --headless --cleanup
- yarn
- yarn test
- yarn lint
# - language: objective-c
# osx_image: xcode10.2
# xcode_sdk: iphonesimulator12.2
# xcode_destination: platform=iOS Simulator,OS=12.2,name=iPhone X
# env: NODE_VERSION=10.15.3
#
# branches:
# only:
# - master
#
# cache: yarn
#
# install:
# - nvm --version
# - echo $NODE_VERSION
# - sudo launchctl limit maxfiles 2048 unlimited
# - sudo ulimit -n 10000
# - brew tap wix/brew
# - brew install applesimutils
# - brew update
# - brew install watchman
# - nvm install $NODE_VERSION
# - nvm use $NODE_VERSION
# - nvm alias default $NODE_VERSION
# - brew install yarn
# - yarn global add react-native-cli
# - yarn global add detox-cli
# - yarn
# - yarn nodeify
# - pod repo update
# - yarn install-pods
# - watchman watch-del-all
# - FORCE_BUNDLING=1 detox build -c ios.sim.release
# script:
# - detox test -c ios.sim.release --no-color --headless --cleanup
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/)
### Removed

### Changed

## [1.2.4-1](https://github.com/rainbow-me/rainbow/releases/tag/v1.2.4-1)
### Changed
* Bugfixes for broken button animation
* Performance improvements for network calls
* Improved support for Sentry sourcemaps

## [1.2.3-1](https://github.com/rainbow-me/rainbow/releases/tag/v1.2.3-1)
### Changed
* Better biometric support
Expand Down
4 changes: 2 additions & 2 deletions android/app/BUCK → android/app/_BUCK
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ android_library(

android_build_config(
name = "build_config",
package = "com.rainbow",
package = "me.rainbow",
)

android_resource(
name = "res",
package = "com.rainbow",
package = "me.rainbow",
res = "src/main/res",
)

Expand Down
111 changes: 75 additions & 36 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import com.android.build.OutputFile
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
Expand Down Expand Up @@ -73,13 +76,15 @@ import com.android.build.OutputFile
*/

project.ext.react = [
entryFile: "index.js"
entryFile: "index.js",
enableHermes: true, // clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/@sentry/react-native/sentry.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"


/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
Expand All @@ -95,20 +100,46 @@ def enableSeparateBuildPerCPUArchitecture = false
*/
def enableProguardInReleaseBuilds = false

/**
* The preferred build flavor of JavaScriptCore.
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'

/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);

android {
compileSdkVersion rootProject.ext.compileSdkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

defaultConfig {
applicationId "com.rainbow"
applicationId "me.rainbow"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
missingDimensionStrategy 'react-native-camera', 'general'
renderscriptTargetApi 23
renderscriptSupportModeEnabled true
multiDexEnabled true
}
splits {
abi {
Expand All @@ -118,61 +149,64 @@ android {
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
buildTypes {
signingConfigs {
debug {
applicationIdSuffix ".debug"
// Note: CodePush updates should not be tested in Debug mode as they are overriden by the RN packager. However, because CodePush checks for updates in all modes, we must supply a key.
buildConfigField "String", "CODEPUSH_KEY", ""
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}

releaseStaging {
applicationIdSuffix ".staging"
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
buildConfigField "String", "CODEPUSH_KEY", "<STAGING_DEPLOYMENT_KEY>"
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}

release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
buildConfigField "String", "CODEPUSH_KEY", "<PRODUCTION_DEPLOYMENT_KEY>"
}
}

packagingOptions {
pickFirst "lib/armeabi-v7a/libc++_shared.so"
pickFirst "lib/arm64-v8a/libc++_shared.so"
pickFirst "lib/x86/libc++_shared.so"
pickFirst "lib/x86_64/libc++_shared.so"
}


// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
// https://developer.android.com/studio/build/configure-apk-splits.html
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}

}
}
}

dependencies {
implementation project(':react-native-text-input-mask')
implementation project(':react-native-safe-area-context')
implementation project(':@segment_analytics-react-native')
implementation project(':@staltz_react-native-tcp')
implementation project(':@react-native-community_blur')
implementation project(':@react-native-community_netinfo')
implementation project(':@react-native-community_masked-view')
implementation project(':react-native-camera')
compile project(':react-native-device-info')
compile project(':react-native-screens')
compile project(':react-native-version-number')
compile project(':react-native-matomo')
compile project(':react-native-blur')
compile project(':react-native-languages')
compile project(':react-native-reanimated')
compile project(':react-native-code-push')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
compile "com.facebook.react:react-native:+" // From node_modules
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'

if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
}

// Run this once to be able to run the application with BUCK
Expand All @@ -181,3 +215,8 @@ task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'


Binary file added android/app/debug.keystore
Binary file not shown.
45 changes: 45 additions & 0 deletions android/app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"project_info": {
"project_number": "401822667691",
"firebase_url": "https://rainbow-a485e.firebaseio.com",
"project_id": "rainbow-a485e",
"storage_bucket": "rainbow-a485e.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:401822667691:android:c03bb0d490f8efd3",
"android_client_info": {
"package_name": "me.rainbow"
}
},
"oauth_client": [
{
"client_id": "401822667691-0lh31s28po2q1jevo849lhcm57pl1oa8.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCtAokiK5mb_KJwdRbR6RP6-vuWIHvKcfo"
}
],
"services": {
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "UA-78554584-1"
}
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}
7 changes: 0 additions & 7 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,3 @@
# http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
8 changes: 0 additions & 8 deletions android/app/src/debug/AndroidManifest.xml

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 4 additions & 2 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rainbow">
package="me.rainbow">

<uses-permission android:name="android.permission.INTERNET" />

Expand All @@ -9,7 +9,9 @@
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1 change: 0 additions & 1 deletion android/app/src/main/debug/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<resources>
<string moduleConfig="true" name="reactNativeCodePush_androidDeploymentKey">deployment-key-here</string>
<string name="app_name">Rainbow Debug</string>
</resources>
Loading

0 comments on commit a37cbb1

Please sign in to comment.