Browse Source

Migrate to RN 0.59.2

tags/0.12.0-mobile
Roman Volosovskyi 5 months ago
parent
commit
24a978d442
No account linked to committer's email address
40 changed files with 1477 additions and 1912 deletions
  1. 4
    2
      .flowconfig
  2. 1
    0
      .gitignore
  3. 2
    15
      android/app/BUCK
  4. 13
    11
      android/app/build.gradle
  5. BIN
      android/app/libs/google-services-4.1.0.jar
  6. BIN
      android/app/libs/gradle-download-task-3.1.2.jar
  7. 8
    0
      android/app/src/debug/AndroidManifest.xml
  8. 8
    0
      android/app/src/debug/res/xml/react_native_config.xml
  9. 2
    1
      android/app/src/main/AndroidManifest.xml
  10. 27
    2
      android/build.gradle
  11. 0
    4
      android/gradle.properties
  12. BIN
      android/gradle/wrapper/gradle-wrapper.jar
  13. 1
    1
      android/gradle/wrapper/gradle-wrapper.properties
  14. 43
    35
      android/gradlew
  15. 4
    10
      android/gradlew.bat
  16. 7
    7
      ios/Podfile.lock
  17. 61
    61
      ios/StatusIm.xcodeproj/project.pbxproj
  18. 1
    1
      ios/StatusIm.xcodeproj/xcshareddata/xcschemes/StatusIm.xcscheme
  19. 3
    2
      ios/StatusIm/AppDelegate.h
  20. 13
    6
      ios/StatusIm/AppDelegate.m
  21. 1
    1
      ios/StatusIm/main.m
  22. 1
    1
      ios/StatusImTests/StatusImTests.m
  23. 3
    1
      mobile_files/.babelrc
  24. 22
    0
      mobile_files/metro.config.js
  25. 8
    10
      mobile_files/package.json.orig
  26. 1210
    1723
      mobile_files/yarn.lock
  27. 0
    0
      resources/images/ui/hold-card-animation.gif
  28. 3
    3
      scripts/lib/setup/nix/mobile/android-ndk/default.nix
  29. 3
    0
      scripts/prepare-for-platform.sh
  30. 2
    1
      src/status_im/react_native/resources.cljs
  31. 10
    1
      src/status_im/ui/components/text_input/view.cljs
  32. 2
    1
      src/status_im/ui/screens/browser/views.cljs
  33. 1
    1
      src/status_im/ui/screens/chat/input/input.cljs
  34. 1
    3
      src/status_im/ui/screens/chat/styles/input/input.cljs
  35. 5
    2
      src/status_im/ui/screens/qr_scanner/styles.cljs
  36. 1
    1
      src/status_im/ui/screens/qr_scanner/views.cljs
  37. 2
    1
      src/status_im/ui/screens/stickers/views.cljs
  38. 1
    1
      test/appium/views/home_view.py
  39. 2
    2
      test/appium/views/profile_view.py
  40. 1
    1
      test/appium/views/wallet_view.py

+ 4
- 2
.flowconfig View File

@@ -35,9 +35,11 @@
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow/
node_modules/react-native/flow-github/

[options]
esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable

module.system=haste

esproposal.class_static_fields=enable
@@ -65,4 +67,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy

[version]
^0.63.0
^0.92.0

+ 1
- 0
.gitignore View File

@@ -129,6 +129,7 @@ fastlane/README.md
/VERSION
/package-lock.json
/package.json
/metro.config.js
/yarn.lock
/.re-natal
/re-natal

+ 2
- 15
android/app/BUCK View File

@@ -11,21 +11,8 @@ import re
#

lib_deps = []
for jarfile in glob(['libs/*.jar']):
name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile)
lib_deps.append(':' + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)

for aarfile in glob(['libs/*.aar']):
name = 'aars__' + re.sub(r'^.*/([^/]+)\.aar$', r'\1', aarfile)
lib_deps.append(':' + name)
android_prebuilt_aar(
name = name,
aar = aarfile,
)
create_aar_targets(glob(["libs/*.aar"]))
create_jar_targets(glob(["libs/*.jar"]))

android_library(
name = 'all-libs',

+ 13
- 11
android/app/build.gradle View File

@@ -3,6 +3,7 @@ apply plugin: "com.android.application"
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

import com.android.build.OutputFile
import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy

/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
@@ -74,7 +75,7 @@ import com.android.build.OutputFile
* ]
*/
project.ext.react = [
nodeExecutableAndArgs: ["node", "--max-old-space-size=8192"],
nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"],
entryFile: "index.android.js"
]

@@ -133,18 +134,23 @@ def getEnvOrConfig = { varName ->

android {
compileSdkVersion 28
buildToolsVersion "28.0.3"

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}



defaultConfig {
applicationId "im.status.ethereum"
minSdkVersion 23
targetSdkVersion 26
targetSdkVersion 28
multiDexEnabled true
versionCode getVersionCode()
versionName getVersionName()
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86-64"
}
}
/**
@@ -209,7 +215,7 @@ android {
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]
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 =
@@ -257,7 +263,7 @@ dependencies {
}
compile (project(':react-native-camera')) {
exclude group: "com.google.android.gms"
compile 'com.android.support:exifinterface:27.+'
compile 'com.android.support:exifinterface:28.+'
}
implementation project(':react-native-status-keycard')
implementation 'com.google.firebase:firebase-core:16.0.3' //this decides your firebase SDK version
@@ -266,15 +272,11 @@ dependencies {

compile 'com.github.status-im:function:0.0.1'
implementation fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
compile 'com.facebook.fresco:animated-gif:1.9.0'
implementation 'com.facebook.fresco:animated-gif:1.10.0'
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}

task hemroidBuild(type: Exec) {
def rootDir = project.rootDir

BIN
android/app/libs/google-services-4.1.0.jar View File


BIN
android/app/libs/gradle-download-task-3.1.2.jar View File


+ 8
- 0
android/app/src/debug/AndroidManifest.xml View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

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

<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:usesCleartextTraffic="true" />
</manifest>

+ 8
- 0
android/app/src/debug/res/xml/react_native_config.xml View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">10.0.3.2</domain>
<domain includeSubdomains="true">10.0.2.2</domain>
</domain-config>
</network-security-config>

+ 2
- 1
android/app/src/main/AndroidManifest.xml View File

@@ -30,7 +30,8 @@
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme"
android:name=".MainApplication"
android:largeHeap="true">
android:largeHeap="true"
android:usesCleartextTraffic="true">
<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"

+ 27
- 2
android/build.gradle View File

@@ -1,14 +1,23 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
}
repositories {
flatDir { dirs "libs", "${rootDir}/app/libs" }
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:4.1.0'
classpath 'com.android.tools.build:gradle:3.3.2'
// google-services downgraded from 4.1.0 because of
// https://github.com/invertase/react-native-firebase/issues/766#issuecomment-365116012
classpath 'com.google.gms:google-services:4.0.1'
classpath 'de.undercouch:gradle-download-task:3.1.2'

// NOTE: Do not place your application dependencies here; they belong
@@ -16,6 +25,21 @@ buildscript {
}
}

subprojects {
afterEvaluate {
if (project.hasProperty("android")) {
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"

defaultConfig {
targetSdkVersion 28
}
}
}
}
}

allprojects {
repositories {
mavenLocal()
@@ -28,3 +52,4 @@ allprojects {
maven { url "https://jitpack.io" }
}
}


+ 0
- 4
android/gradle.properties View File

@@ -17,7 +17,6 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

android.useDeprecatedNdk=true
# To create a new keystore for development purposes (https://developer.android.com/studio/publish/app-signing.html)
# $keytool -genkey -v -keystore ./status-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias status
STATUS_RELEASE_STORE_FILE=~/.gradle/status-im.keystore
@@ -25,7 +24,4 @@ STATUS_RELEASE_STORE_PASSWORD=password
STATUS_RELEASE_KEY_ALIAS=status
STATUS_RELEASE_KEY_PASSWORD=password

# Workaround for issue https://github.com/facebook/react-native/issues/16906 (TODO: fixed in 0.57.3, remove once we upgrade react-native)
android.enableAapt2=false

org.gradle.jvmargs=-Xmx8704M

BIN
android/gradle/wrapper/gradle-wrapper.jar View File


+ 1
- 1
android/gradle/wrapper/gradle-wrapper.properties View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

+ 43
- 35
android/gradlew View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh

##############################################################################
##
@@ -6,20 +6,38 @@
##
##############################################################################

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
warn () {
echo "$*"
}

die ( ) {
die () {
echo
echo "$*"
echo
@@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,31 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac

# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
@@ -90,7 +89,7 @@ location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -114,6 +113,7 @@ fi
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`

# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@@ -154,11 +154,19 @@ if $cygwin ; then
esac
fi

# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
APP_ARGS=$(save "$@")

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
exec "$JAVACMD" "$@"

+ 4
- 10
android/gradlew.bat View File

@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +46,9 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line

+ 7
- 7
ios/Podfile.lock View File

@@ -54,8 +54,8 @@ PODS:
- nanopb/decode (0.3.8)
- nanopb/encode (0.3.8)
- Protobuf (3.6.1)
- React (0.56.0):
- React/Core (= 0.56.0)
- React (0.59.2):
- React/Core (= 0.59.2)
- react-native-background-timer (2.1.0-alpha.6):
- React
- react-native-camera (1.1.5):
@@ -68,8 +68,8 @@ PODS:
- React
- react-native-webview (5.2.1):
- React
- React/Core (0.56.0):
- yoga (= 0.56.0.React)
- React/Core (0.59.2):
- yoga (= 0.59.2.React)
- RNKeychain (3.0.0-rc.3):
- React
- SQLCipher (3.4.2):
@@ -77,7 +77,7 @@ PODS:
- SQLCipher/common (3.4.2)
- SQLCipher/standard (3.4.2):
- SQLCipher/common
- yoga (0.56.0.React)
- yoga (0.59.2.React)

DEPENDENCIES:
- Firebase/Core
@@ -127,13 +127,13 @@ SPEC CHECKSUMS:
GoogleUtilities: 06b66f9567769a7958db20a92f0128b2843e49d5
nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
Protobuf: 1eb9700044745f00181c136ef21b8ff3ad5a0fd5
React: 1fe0eb13d90b625d94c3b117c274dcfd2e760e11
React: 1d605e098d69bdf08960787f3446f0a9dc2e2ccf
react-native-background-timer: bb7a98c8e97fc7c290de2d423dd09ddb73dcbcbb
react-native-camera: 68ad5143d2d0636236d46c7de8d2a6455ca52a36
react-native-webview: a42108b827082f8f0333529b0772102031d5960d
RNKeychain: 627c6095cef215dd3d9804a9a9cf45ab96aa3997
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
yoga: b1ce48b6cf950b98deae82838f5173ea7cf89e85
yoga: 128daf064cacaede0c3bb27424b6b4c71052e6cd

PODFILE CHECKSUM: 2e0971124458d413e18b407b2337bf2c1d32f357


+ 61
- 61
ios/StatusIm.xcodeproj/project.pbxproj View File

@@ -187,6 +187,34 @@
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RNFirebase;
};
4CB6B0F9223BA994003FA049 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = EDEBC6D6214B3E7000DD5AC8;
remoteInfo = jsi;
};
4CB6B0FB223BA994003FA049 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = EDEBC73B214B45A300DD5AC8;
remoteInfo = jsiexecutor;
};
4CB6B0FD223BA994003FA049 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = ED296FB6214C9A0900B7C4FE;
remoteInfo = "jsi-tvOS";
};
4CB6B0FF223BA994003FA049 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = ED296FEE214C9CF800B7C4FE;
remoteInfo = "jsiexecutor-tvOS";
};
5537E2A920650E640085CED4 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
@@ -390,20 +418,6 @@
remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
remoteInfo = "cxxreact-tvOS";
};
C90048071FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
remoteInfo = jschelpers;
};
C90048091FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
remoteInfo = "jschelpers-tvOS";
};
C900480B1FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
@@ -432,20 +446,6 @@
remoteGlobalIDString = 3D383D621EBD27B9005632C8;
remoteInfo = "double-conversion-tvOS";
};
C90048131FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9936F3131F5F2E4B0010BF04;
remoteInfo = privatedata;
};
C90048151FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04;
remoteInfo = "privatedata-tvOS";
};
C900481C1FC47AF50002B8EA /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 305F194186D848FDB07AF34C /* RNFS.xcodeproj */;
@@ -764,16 +764,16 @@
C90048021FC47AF50002B8EA /* libyoga.a */,
C90048041FC47AF50002B8EA /* libcxxreact.a */,
C90048061FC47AF50002B8EA /* libcxxreact.a */,
C90048081FC47AF50002B8EA /* libjschelpers.a */,
C900480A1FC47AF50002B8EA /* libjschelpers.a */,
5537E2AA20650E640085CED4 /* libjsinspector.a */,
5537E2AC20650E640085CED4 /* libjsinspector-tvOS.a */,
C900480C1FC47AF50002B8EA /* libthird-party.a */,
C900480E1FC47AF50002B8EA /* libthird-party.a */,
C90048101FC47AF50002B8EA /* libdouble-conversion.a */,
C90048121FC47AF50002B8EA /* libdouble-conversion.a */,
C90048141FC47AF50002B8EA /* libprivatedata.a */,
C90048161FC47AF50002B8EA /* libprivatedata-tvOS.a */,
4CB6B0FA223BA994003FA049 /* libjsi.a */,
4CB6B0FC223BA994003FA049 /* libjsiexecutor.a */,
4CB6B0FE223BA994003FA049 /* libjsi-tvOS.a */,
4CB6B100223BA994003FA049 /* libjsiexecutor-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
@@ -1427,6 +1427,34 @@
remoteRef = 475D1FBF20B7413500879A77 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
4CB6B0FA223BA994003FA049 /* libjsi.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjsi.a;
remoteRef = 4CB6B0F9223BA994003FA049 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
4CB6B0FC223BA994003FA049 /* libjsiexecutor.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjsiexecutor.a;
remoteRef = 4CB6B0FB223BA994003FA049 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
4CB6B0FE223BA994003FA049 /* libjsi-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libjsi-tvOS.a";
remoteRef = 4CB6B0FD223BA994003FA049 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
4CB6B100223BA994003FA049 /* libjsiexecutor-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libjsiexecutor-tvOS.a";
remoteRef = 4CB6B0FF223BA994003FA049 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
5537E2AA20650E640085CED4 /* libjsinspector.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -1630,20 +1658,6 @@
remoteRef = C90048051FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C90048081FC47AF50002B8EA /* libjschelpers.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjschelpers.a;
remoteRef = C90048071FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C900480A1FC47AF50002B8EA /* libjschelpers.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjschelpers.a;
remoteRef = C90048091FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C900480C1FC47AF50002B8EA /* libthird-party.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -1672,20 +1686,6 @@
remoteRef = C90048111FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C90048141FC47AF50002B8EA /* libprivatedata.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libprivatedata.a;
remoteRef = C90048131FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C90048161FC47AF50002B8EA /* libprivatedata-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libprivatedata-tvOS.a";
remoteRef = C90048151FC47AF50002B8EA /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
C900481D1FC47AF50002B8EA /* libRNFS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -1776,7 +1776,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -o errexit\nexport NODE_BINARY=\"node --max-old-space-size=8192\"\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
shellScript = "set -o errexit\nexport NODE_BINARY=\"node\"\nexport NODE_ARGS=\" --max-old-space-size=16384 \"\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
};
2EAC54E16AB243C3EBBFE1BA /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;

+ 1
- 1
ios/StatusIm.xcodeproj/xcshareddata/xcschemes/StatusIm.xcscheme View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
LastUpgradeVersion = "0940"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"

+ 3
- 2
ios/StatusIm/AppDelegate.h View File

@@ -1,5 +1,5 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* Copyright (c) Facebook, Inc. and its affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
@@ -7,9 +7,10 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/

#import <React/RCTBridgeDelegate.h>
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>

@property (nonatomic, strong) UIWindow *window;


+ 13
- 6
ios/StatusIm/AppDelegate.m View File

@@ -1,5 +1,5 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* Copyright (c) Facebook, Inc. and its affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
@@ -47,12 +47,10 @@
RCTSetLogThreshold(RCTLogLevelTrace);
}

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"StatusIm"
initialProperties:nil
launchOptions:launchOptions];
initialProperties:nil];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
@@ -94,4 +92,13 @@
restorationHandler:restorationHandler];
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end

+ 1
- 1
ios/StatusIm/main.m View File

@@ -1,5 +1,5 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* Copyright (c) Facebook, Inc. and its affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the

+ 1
- 1
ios/StatusImTests/StatusImTests.m View File

@@ -1,5 +1,5 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* Copyright (c) Facebook, Inc. and its affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the

+ 3
- 1
mobile_files/.babelrc View File

@@ -1,3 +1,5 @@
{
"presets": ["react-native"]
"presets": [
"module:metro-react-native-babel-preset"
]
}

+ 22
- 0
mobile_files/metro.config.js View File

@@ -0,0 +1,22 @@
const { getDefaultConfig } = require("metro-config");

module.exports = (async () => {
const {
resolver: { sourceExts, assetExts }
} = await getDefaultConfig();
return {
transformer: {
babelTransformerPath: require.resolve("react-native-svg-transformer"),
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
resolver: {
assetExts: assetExts.filter(ext => ext !== "svg"),
sourceExts: [...sourceExts, "svg"]
}
};
})();

+ 8
- 10
mobile_files/package.json.orig View File

@@ -24,16 +24,16 @@
"events": "1.1.1",
"hi-base32": "0.5.0",
"homoglyph-finder": "1.1.1",
"identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status",
"i18n-js": "^3.1.0",
"identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status",
"js-sha3": "^0.8.0",
"process": "0.11.10",
"prop-types": "15.6.0",
"punycode": "1.4.1",
"querystring-es3": "0.2.1",
"react": "16.4.1",
"react": "16.8.3",
"react-dom": "16.4.2",
"react-native": "git+https://github.com/status-im/react-native.git#0.56.1-status",
"react-native": "git+https://github.com/status-im/react-native.git#status-v0.59.2",
"react-native-background-timer": "2.1.0-alpha.6",
"react-native-camera": "git+https://github.com/status-im/react-native-camera.git#v1.1.5-1-status",
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1",
@@ -49,27 +49,25 @@
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-status",
"react-native-languages": "^3.0.2",
"react-native-os": "git+https://github.com/status-im/react-native-os.git#v1.1.0-1-status",
"react-native-qrcode": "0.2.7",
"react-native-qrcode": "git+https://github.com/status-im/react-native-qrcode.git#v0.2.8",
"react-native-randombytes": "3.5.0",
"react-native-safe-area-view": "0.9.0",
"react-native-securerandom": "git+https://github.com/status-im/react-native-securerandom.git#0.1.1-2",
"react-native-splash-screen": "3.1.1",
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#v2.3.10",
"react-native-svg": "6.5.2",
"react-native-svg": "^9.2.4",
"react-native-svg-transformer": "^0.12.1",
"react-native-tcp": "git+https://github.com/status-im/react-native-tcp.git#v3.3.0-1-status",
"react-native-udp": "git+https://github.com/status-im/react-native-udp.git#2.3.1-1",
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#v0.33.16-6",
"react-native-webview": "^5.2.1",
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/classnames-colision",
"react-navigation": "^2.12.1",
"realm": "2.21.0",
"realm": "^2.24.0",
"rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status",
"string_decoder": "0.10.31",
"text-encoding": "^0.6.4",
"url": "0.10.3",
"web3": "git+https://github.com/status-im/web3.js.git#0.20.2-status",
"web3-utils": "1.0.0-beta.36"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.47"
}
}

+ 1210
- 1723
mobile_files/yarn.lock
File diff suppressed because it is too large
View File


resources/images/ui/hold-card-animation.png → resources/images/ui/hold-card-animation.gif View File


+ 3
- 3
scripts/lib/setup/nix/mobile/android-ndk/default.nix View File

@@ -6,15 +6,15 @@
{ stdenv, fetchzip }:

let
ndk-version = "r10e";
ndk-version = "r17c";
archives = {
macosx = fetchzip {
url = "https://dl.google.com/android/repository/android-ndk-${ndk-version}-darwin-x86_64.zip";
sha256 = "0pqagwqrp6sw7l5hcbjs308wqnxyslnpr7x8svs58dlkzn70255q";
sha256 = "0299m2l8jp773r9y1l9jbyy4xw2mvsz8gqv5b409gwclq8apip1w";
};
linux = fetchzip {
url = "https://dl.google.com/android/repository/android-ndk-${ndk-version}-linux-x86_64.zip";
sha256 = "168dbhk7cvrri1b4jwskjqm5mj14cg6px7y7ycz4g9m8byqvqjhf";
sha256 = "02q1hy423syl868jdyaxjm44hn59cmni5019r811vinagvq3m7qi";
};
};


+ 3
- 0
scripts/prepare-for-platform.sh View File

@@ -55,6 +55,9 @@ if [ ! -f .babelrc ] || [ $(readlink .babelrc) != "${PLATFORM_FOLDER}/.babelrc"

echo "Creating link: .babelrc -> ${PLATFORM_FOLDER}/.babelrc"
ln -sf ${PLATFORM_FOLDER}/.babelrc .babelrc

echo "Creating link: .babelrc -> ${PLATFORM_FOLDER}/.babelrc"
ln -sf ${PLATFORM_FOLDER}/metro.config.js metro.config.js
fi

yarn install --frozen-lockfile

+ 2
- 1
src/status_im/react_native/resources.cljs View File

@@ -69,7 +69,8 @@
:hardwallet-card (js/require "./resources/images/ui/hardwallet-card.png")
:secret-keys (js/require "./resources/images/ui/secret-keys.png")
:keycard-lock (js/require "./resources/images/ui/keycard-lock.png")
:hold-card-animation (js/require "./resources/images/ui/hold-card-animation.png")
:hold-card-animation (try (js/require "./resources/images/ui/hold-card-animation.gif")
(catch :default e))
:warning-sign (js/require "./resources/images/ui/warning-sign.png")
:phone-nfc-on (js/require "./resources/images/ui/phone-nfc-on.png")
:phone-nfc-off (js/require "./resources/images/ui/phone-nfc-off.png")

+ 10
- 1
src/status_im/ui/components/text_input/view.cljs View File

@@ -5,12 +5,21 @@
[status-im.utils.platform :as platform]
[status-im.ui.components.tooltip.views :as tooltip]))

(defn merge-container-styles
[height container]
(let [merged-styles (merge (styles/input-container height) container)]
;; `:background-color` can't be nil; in this case the app will crash.
;; Nevertheless, we need to be able to remove background if necessary.
(if (nil? (:background-color merged-styles))
(dissoc merged-styles :background-color)
merged-styles)))

(defn text-input-with-label [{:keys [label content error style height container text] :as props}]
[react/view
(when label
[react/text {:style styles/label}
label])
[react/view {:style (merge (styles/input-container height) container)}
[react/view {:style (merge-container-styles height container)}
[react/text-input
(merge
{:style (merge styles/input style)

+ 2
- 1
src/status_im/ui/screens/browser/views.cljs View File

@@ -110,7 +110,8 @@
{:should-component-update (fn [_ _ args]
(let [[_ props] args]
(not (nil? (:url props)))))}
[react/view {:flex 1}
[react/view {:flex 1
:elevation -10}
[react/view components.styles/flex
(if unsafe?
[site-blocked.views/view {:can-go-back? can-go-back?

+ 1
- 1
src/status_im/ui/screens/chat/input/input.cljs View File

@@ -111,7 +111,7 @@
(defview reply-message [from message-text]
(letsubs [username [:contacts/contact-name-by-identity from]
current-public-key [:account/public-key]]
[react/view {:style style/reply-message-content}
[react/scroll-view {:style style/reply-message-content}
(chat-utils/format-reply-author from username current-public-key style/reply-message-author)
[react/text {:style (message-style/style-message-text false)} message-text]]))


+ 1
- 3
src/status_im/ui/screens/chat/styles/input/input.cljs View File

@@ -33,9 +33,7 @@
(def reply-message-content
{:flex-direction :column
:padding-left 7
:margin-right 30
:max-height 140
:overflow :scroll})
:max-height 140})

(defn reply-message-author [chosen?]
(assoc (message-author-name chosen?)

+ 5
- 2
src/status_im/ui/screens/qr_scanner/styles.cljs View File

@@ -1,4 +1,5 @@
(ns status-im.ui.screens.qr-scanner.styles
(:require-macros [status-im.utils.styles :as styles])
(:require [status-im.ui.components.colors :as colors]
[status-im.ui.components.toolbar.styles :as toolbar.styles]))

@@ -6,8 +7,10 @@
{:flex 1
:background-color :white})

(def barcode-scanner
{:flex 1})
(styles/defstyle barcode-scanner
{:flex 1
:elevation -10
:android {:marginTop 10}})

(def rectangle-container
{:position :absolute

+ 1
- 1
src/status_im/ui/screens/qr_scanner/views.cljs View File

@@ -13,7 +13,7 @@
(defview qr-scanner-toolbar [title identifier]
[react/view
[status-bar/status-bar]
[toolbar/toolbar nil
[toolbar/toolbar {:style {:background-color :white}}
[toolbar/nav-button (actions/back
#(do
(re-frame/dispatch [:qr-scanner.callback/scan-qr-code-cancel identifier])

+ 2
- 1
src/status_im/ui/screens/stickers/views.cljs View File

@@ -37,7 +37,8 @@
(when (and (not (zero? price))) ;(not no-snt?))
[icons/icon :icons/logo {:color colors/white :width 12 :height 12 :container-style {:margin-right 8}}])
(if pending
[components/activity-indicator {:animating true}]
[components/activity-indicator {:animating true
:color colors/white}]
[react/text {:style {:color colors/white}}
(cond (or owned (zero? price))
(i18n/label :t/install)

+ 1
- 1
test/appium/views/home_view.py View File

@@ -60,7 +60,7 @@ class ChatElement(BaseButton):
class DeleteButton(BaseButton):
def __init__(self, driver, parent_locator: str):
super(DeleteButton, self).__init__(driver)
locator_str = "/..//*[@content-desc='icon']"
locator_str = "/../..//*[@content-desc='icon']"
self.locator = self.Locator.xpath_selector(parent_locator + locator_str)

return DeleteButton(self.driver, self.locator.value)

+ 2
- 2
test/appium/views/profile_view.py View File

@@ -105,14 +105,14 @@ class UserNameSetByUserText(BaseText):
def __init__(self, driver):
super(UserNameSetByUserText, self).__init__(driver)
self.locator = self.Locator.xpath_selector(
'//android.widget.ImageView[@content-desc="chat-icon"]/../../android.widget.TextView[1]')
'//android.widget.ImageView[@content-desc="chat-icon"]/../android.widget.TextView[1]')


class DefaultUserNameText(BaseText):
def __init__(self, driver):
super(DefaultUserNameText, self).__init__(driver)
self.locator = self.Locator.xpath_selector(
'//android.widget.ImageView[@content-desc="chat-icon"]/../../android.widget.TextView[2]')
'//android.widget.ImageView[@content-desc="chat-icon"]/../android.widget.TextView[2]')


class ShareMyProfileButton(BaseButton):

+ 1
- 1
test/appium/views/wallet_view.py View File

@@ -271,7 +271,7 @@ class WalletView(BaseView):
def send_transaction(self, **kwargs):
send_transaction_view = self.send_transaction_button.click()
send_transaction_view.select_asset_button.click()
asset_name = kwargs.get('asset_name', 'ETHro')
asset_name = kwargs.get('asset_name', 'ETHro').upper()
asset_button = send_transaction_view.asset_by_name(asset_name)
send_transaction_view.select_asset_button.click_until_presence_of_element(asset_button)
asset_button.click()

Loading…
Cancel
Save