Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e39c249868 | ||
|
|
c6addce62a | ||
|
|
18e2652ec3 | ||
|
|
e938c2393a | ||
|
|
ac2d10bc5d | ||
|
|
e825f930fa | ||
|
|
394dfde87b | ||
|
|
e4db23b0a9 | ||
|
|
94ddbbcd2e | ||
|
|
ac27314547 | ||
|
|
7a4b12acf4 | ||
|
|
4e6dea6b36 | ||
|
|
899f89c800 | ||
|
|
b121678281 | ||
|
|
7f87c007c1 | ||
|
|
11726df060 | ||
|
|
2f84cfd354 | ||
|
|
7b60a5f867 | ||
|
|
7d4be37111 | ||
|
|
2f19badc6c | ||
|
|
3b034265c0 | ||
|
|
5fffc230c9 | ||
|
|
5c92b7eb1e | ||
|
|
45da51bea6 | ||
|
|
8d166a3a52 | ||
|
|
401f7d7383 | ||
|
|
c238ebe36e | ||
|
|
a502da6ea4 | ||
|
|
f9255100a1 | ||
|
|
daa78b4171 | ||
|
|
f2c8f21336 | ||
|
|
554476ede9 | ||
|
|
8c358d4ae4 | ||
|
|
937c128c08 | ||
|
|
03cf4cec0e | ||
|
|
554f8aff09 | ||
|
|
d71cfd12c1 | ||
|
|
a5d767515d | ||
|
|
c38fdec5b7 | ||
|
|
ada7a02c21 | ||
|
|
3f3cbe98a4 | ||
|
|
a74da63c32 | ||
|
|
6d006c0ea9 | ||
|
|
f6f5dfbe03 | ||
|
|
d608b88e26 | ||
|
|
854e372f73 | ||
|
|
2e0fa29806 | ||
|
|
0e36190516 | ||
|
|
74da82c61a | ||
|
|
b70dd2fe67 | ||
|
|
b44e4c6d59 | ||
|
|
a0697d9242 | ||
|
|
9723479634 | ||
|
|
dabe8285be | ||
|
|
f981021a1f | ||
|
|
b5781a7a83 | ||
|
|
e8556a9abf | ||
|
|
f640eb8c8f | ||
|
|
8546727f84 | ||
|
|
de6a736c10 | ||
|
|
61600a534b | ||
|
|
181e5c2266 | ||
|
|
9473d3f40c | ||
|
|
e98ce54830 | ||
|
|
4097aba39b | ||
|
|
64dde1c9d1 | ||
|
|
0fe6fea7e4 | ||
|
|
4810e1d7bf | ||
|
|
9e4d9a05a7 | ||
|
|
ee62ffdc2c | ||
|
|
d8c110bf85 | ||
|
|
ff3249c514 | ||
|
|
5380f83cab | ||
|
|
7332f483a4 | ||
|
|
f67f205fa9 | ||
|
|
bd54b05fd0 | ||
|
|
73c32eacb3 | ||
|
|
a073812a9f | ||
|
|
8cd5e3f6e3 | ||
|
|
8d7224d972 | ||
|
|
81212573d7 | ||
|
|
de8c294c9a | ||
|
|
8478ac74ab | ||
|
|
e9310a2ace | ||
|
|
0345871b66 | ||
|
|
7a299b9b86 | ||
|
|
5fe3029ad8 | ||
|
|
c6e63ff5a5 |
@@ -100,9 +100,8 @@ Statusgo.xcframework
|
|||||||
|
|
||||||
#ios
|
#ios
|
||||||
/ios/Pods/
|
/ios/Pods/
|
||||||
|
/ios/logs/
|
||||||
/ios/StatusIm.xcworkspace
|
/ios/StatusIm.xcworkspace
|
||||||
/ios/react-native-xcode.log
|
|
||||||
/ios/set_xcode_version.log
|
|
||||||
.ruby-version
|
.ruby-version
|
||||||
status-e2e/
|
status-e2e/
|
||||||
|
|
||||||
@@ -183,4 +182,4 @@ test/appium/tests/users.py
|
|||||||
/.calva/
|
/.calva/
|
||||||
|
|
||||||
## component-tests
|
## component-tests
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
"list-comp" :binding
|
"list-comp" :binding
|
||||||
"defview" :arg1-body
|
"defview" :arg1-body
|
||||||
"letsubs" :binding
|
"letsubs" :binding
|
||||||
|
"with-let" "let"
|
||||||
"testing" :arg1-body
|
"testing" :arg1-body
|
||||||
"deftest-sub" :arg1-body
|
"deftest-sub" :arg1-body
|
||||||
"wait-for" :arg1-body
|
"wait-for" :arg1-body
|
||||||
|
|||||||
@@ -310,6 +310,7 @@ dependencies {
|
|||||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||||
|
|
||||||
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||||
|
implementation "androidx.core:core-splashscreen:1.0.0"
|
||||||
|
|
||||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||||
exclude group:'com.facebook.fbjni'
|
exclude group:'com.facebook.fbjni'
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/Theme.AppSplash"
|
||||||
android:name=".MainApplication"
|
android:name=".MainApplication"
|
||||||
android:largeHeap="true"
|
android:largeHeap="true"
|
||||||
android:usesCleartextTraffic="true">
|
android:usesCleartextTraffic="true">
|
||||||
@@ -38,6 +38,7 @@
|
|||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
android:theme="@style/Theme.AppSplash"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:windowSoftInputMode="adjustResize"
|
android:windowSoftInputMode="adjustResize"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.SharedPreferences;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import com.facebook.react.ReactActivityDelegate;
|
import com.facebook.react.ReactActivityDelegate;
|
||||||
import com.facebook.react.ReactRootView;
|
import com.facebook.react.ReactRootView;
|
||||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||||
@@ -31,7 +32,7 @@ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
|
|||||||
import com.facebook.react.ReactFragmentActivity;
|
import com.facebook.react.ReactFragmentActivity;
|
||||||
import com.reactnativenavigation.NavigationActivity;
|
import com.reactnativenavigation.NavigationActivity;
|
||||||
import com.facebook.react.modules.core.PermissionListener;
|
import com.facebook.react.modules.core.PermissionListener;
|
||||||
import org.devio.rn.splashscreen.SplashScreen;
|
import androidx.core.splashscreen.SplashScreen;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import im.status.ethereum.module.StatusThreadPoolExecutor;
|
import im.status.ethereum.module.StatusThreadPoolExecutor;
|
||||||
@@ -42,6 +43,8 @@ public class MainActivity extends NavigationActivity
|
|||||||
|
|
||||||
|
|
||||||
@Nullable private PermissionListener mPermissionListener;
|
@Nullable private PermissionListener mPermissionListener;
|
||||||
|
private boolean keepSplash = true;
|
||||||
|
private final int SPLASH_DELAY = 3200;
|
||||||
|
|
||||||
private static void registerUncaughtExceptionHandler(final Context context) {
|
private static void registerUncaughtExceptionHandler(final Context context) {
|
||||||
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
|
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
|
||||||
@@ -121,21 +124,8 @@ public class MainActivity extends NavigationActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
|
||||||
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
|
setTheme(R.style.DarkTheme);
|
||||||
case Configuration.UI_MODE_NIGHT_YES:
|
|
||||||
setTheme(R.style.DarkTheme);
|
|
||||||
SplashScreen.show(this, R.style.DarkTheme, R.id.lottie);
|
|
||||||
break;
|
|
||||||
case Configuration.UI_MODE_NIGHT_NO:
|
|
||||||
setTheme(R.style.LightTheme);
|
|
||||||
SplashScreen.show(this, R.style.LightTheme, R.id.lottie);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
setTheme(R.style.LightTheme);
|
|
||||||
SplashScreen.show(this, R.style.LightTheme, R.id.lottie);
|
|
||||||
}
|
|
||||||
SplashScreen.setAnimationFinished(true);
|
|
||||||
// Make sure we get an Alert for every uncaught exceptions
|
// Make sure we get an Alert for every uncaught exceptions
|
||||||
registerUncaughtExceptionHandler(MainActivity.this);
|
registerUncaughtExceptionHandler(MainActivity.this);
|
||||||
|
|
||||||
@@ -197,6 +187,11 @@ public class MainActivity extends NavigationActivity
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
splashScreen.setKeepOnScreenCondition(() -> keepSplash);
|
||||||
|
|
||||||
|
Handler handler = new Handler();
|
||||||
|
handler.postDelayed(() -> keepSplash = false, SPLASH_DELAY);
|
||||||
|
|
||||||
StatusThreadPoolExecutor.getInstance().execute(r);
|
StatusThreadPoolExecutor.getInstance().execute(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -2,4 +2,6 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<color name="alert_background">#ffffff</color>
|
<color name="alert_background">#ffffff</color>
|
||||||
<color name="alert_text">#000000</color>
|
<color name="alert_text">#000000</color>
|
||||||
|
<color name="splash_background">#09101C</color>
|
||||||
|
<color name="splash_status_bar_color">#ffffff</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<style name="Theme.AppSplash" parent="Theme.SplashScreen">
|
||||||
|
<item name="windowSplashScreenBackground">@color/splash_background</item>
|
||||||
|
<item name="windowSplashScreenAnimatedIcon">@drawable/splash_logo</item>
|
||||||
|
<item name="windowSplashScreenAnimationDuration">1000</item>
|
||||||
|
|
||||||
|
<!-- Status bar and Nav bar configs -->
|
||||||
|
<item name="android:statusBarColor" tools:targetApi="l">@color/splash_background</item>
|
||||||
|
<item name="android:windowLightStatusBar">false</item>
|
||||||
|
|
||||||
|
<item name="postSplashScreenTheme">@style/DarkTheme</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux' }
|
agent { label 'linux' }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
@@ -63,6 +63,9 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
script { api = ios.bundle() }
|
script { api = ios.bundle() }
|
||||||
}
|
}
|
||||||
|
post {
|
||||||
|
failure { archiveArtifacts 'ios/logs/*' }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
stage('Parallel Upload') {
|
stage('Parallel Upload') {
|
||||||
parallel {
|
parallel {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label params.AGENT_LABEL }
|
agent { label params.AGENT_LABEL }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'macos' }
|
agent { label 'macos' }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux' }
|
agent { label 'linux' }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
library 'status-jenkins-lib@v1.6.6'
|
library 'status-jenkins-lib@v1.6.9'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent {
|
agent {
|
||||||
|
|||||||
@@ -61,6 +61,35 @@ the source file. For a real example, see
|
|||||||
[rn/view (do-something)]])
|
[rn/view (do-something)]])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Always add styles inside the `:style` key
|
||||||
|
|
||||||
|
Although when compiling ReactNative for mobile some components are able work with
|
||||||
|
their styles in the top-level of the properties map, prefer to add them inside the
|
||||||
|
`:style` key in order to separate styles from properties:
|
||||||
|
|
||||||
|
```clojure
|
||||||
|
;; bad
|
||||||
|
[rn/button {:flex 1
|
||||||
|
:padding-vertical 10
|
||||||
|
:padding-horizontal 20
|
||||||
|
:on-press #(js/alert "Hi!")
|
||||||
|
:title "Button"}]
|
||||||
|
|
||||||
|
;; good
|
||||||
|
[rn/button {:style {:flex 1
|
||||||
|
:padding-vertical 10
|
||||||
|
:padding-horizontal 20}
|
||||||
|
:on-press #(js/alert "Hi!")
|
||||||
|
:title "Button"}]
|
||||||
|
|
||||||
|
;; better
|
||||||
|
;; (define them in a style ns & place them inside `:style` key)
|
||||||
|
[rn/button {:style (style/button)
|
||||||
|
:on-press #(js/alert "Hi!")
|
||||||
|
:title "Button"}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
### Don't use percents to define width/height
|
### Don't use percents to define width/height
|
||||||
|
|
||||||
In ReactNative, all layouts use the [flexbox
|
In ReactNative, all layouts use the [flexbox
|
||||||
@@ -116,6 +145,20 @@ deref'ed atoms.
|
|||||||
{:background-color (colors/theme-colors colors/white colors/neutral-90)})
|
{:background-color (colors/theme-colors colors/white colors/neutral-90)})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Custom Colors
|
||||||
|
|
||||||
|
The Status designs have a lot of customization of user and group colors with components and pages. For consistency it is best to use `customization-color` as the prop key on pages and components. This will help easily identify what pages and components in the application are using customized colors.
|
||||||
|
|
||||||
|
```clojure
|
||||||
|
;; bad
|
||||||
|
(defn community-card [{keys [custom-color]}]
|
||||||
|
...)
|
||||||
|
|
||||||
|
;; good
|
||||||
|
(defn community-card [{keys [customization-color]}]
|
||||||
|
...)
|
||||||
|
```
|
||||||
|
|
||||||
### Using TODOs comments
|
### Using TODOs comments
|
||||||
|
|
||||||
_TODO_ comments are used extensively in the codebase, but prefer to use them
|
_TODO_ comments are used extensively in the codebase, but prefer to use them
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ def build_ios_adhoc(readonly: false, pr_build: false)
|
|||||||
export_method: 'ad-hoc',
|
export_method: 'ad-hoc',
|
||||||
output_name: 'StatusIm',
|
output_name: 'StatusIm',
|
||||||
output_directory: 'status-ios',
|
output_directory: 'status-ios',
|
||||||
|
buildlog_path: 'ios/logs',
|
||||||
export_options: {
|
export_options: {
|
||||||
signingStyle: 'manual',
|
signingStyle: 'manual',
|
||||||
provisioningProfiles: {
|
provisioningProfiles: {
|
||||||
@@ -162,6 +163,7 @@ def build_ios_e2e
|
|||||||
# 3. directory where to up StatusIm.app
|
# 3. directory where to up StatusIm.app
|
||||||
derived_data_path: 'status-ios',
|
derived_data_path: 'status-ios',
|
||||||
output_name: 'StatusIm.app',
|
output_name: 'StatusIm.app',
|
||||||
|
buildlog_path: 'ios/logs',
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
# Normal stuff
|
# Normal stuff
|
||||||
scheme: 'StatusIm',
|
scheme: 'StatusIm',
|
||||||
@@ -239,6 +241,7 @@ platform :ios do
|
|||||||
clean: true,
|
clean: true,
|
||||||
export_method: 'app-store',
|
export_method: 'app-store',
|
||||||
output_directory: 'status-ios',
|
output_directory: 'status-ios',
|
||||||
|
buildlog_path: 'ios/logs',
|
||||||
include_symbols: false,
|
include_symbols: false,
|
||||||
export_options: {
|
export_options: {
|
||||||
"combileBitcode": true,
|
"combileBitcode": true,
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
CFPropertyList (3.0.5)
|
CFPropertyList (3.0.6)
|
||||||
rexml
|
rexml
|
||||||
addressable (2.8.1)
|
addressable (2.8.1)
|
||||||
public_suffix (>= 2.0.2, < 6.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
artifactory (3.0.15)
|
artifactory (3.0.15)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
aws-eventstream (1.2.0)
|
aws-eventstream (1.2.0)
|
||||||
aws-partitions (1.644.0)
|
aws-partitions (1.728.0)
|
||||||
aws-sdk-core (3.159.0)
|
aws-sdk-core (3.170.0)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
aws-partitions (~> 1, >= 1.525.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.5)
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
aws-sdk-kms (1.58.0)
|
aws-sdk-kms (1.63.0)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.165.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-s3 (1.114.0)
|
aws-sdk-s3 (1.119.1)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.165.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.4)
|
aws-sigv4 (~> 1.4)
|
||||||
aws-sigv4 (1.5.2)
|
aws-sigv4 (1.5.2)
|
||||||
@@ -36,8 +36,8 @@ GEM
|
|||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
dotenv (2.8.1)
|
dotenv (2.8.1)
|
||||||
emoji_regex (3.2.3)
|
emoji_regex (3.2.3)
|
||||||
excon (0.93.0)
|
excon (0.99.0)
|
||||||
faraday (1.10.2)
|
faraday (1.10.3)
|
||||||
faraday-em_http (~> 1.0)
|
faraday-em_http (~> 1.0)
|
||||||
faraday-em_synchrony (~> 1.0)
|
faraday-em_synchrony (~> 1.0)
|
||||||
faraday-excon (~> 1.1)
|
faraday-excon (~> 1.1)
|
||||||
@@ -66,7 +66,7 @@ GEM
|
|||||||
faraday_middleware (1.2.0)
|
faraday_middleware (1.2.0)
|
||||||
faraday (~> 1.0)
|
faraday (~> 1.0)
|
||||||
fastimage (2.2.6)
|
fastimage (2.2.6)
|
||||||
fastlane (2.210.1)
|
fastlane (2.212.1)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
addressable (>= 2.8, < 3.0.0)
|
addressable (>= 2.8, < 3.0.0)
|
||||||
artifactory (~> 3.0)
|
artifactory (~> 3.0)
|
||||||
@@ -109,9 +109,9 @@ GEM
|
|||||||
fastlane-plugin-diawi (2.1.0)
|
fastlane-plugin-diawi (2.1.0)
|
||||||
rest-client (>= 2.0.0)
|
rest-client (>= 2.0.0)
|
||||||
gh_inspector (1.1.3)
|
gh_inspector (1.1.3)
|
||||||
google-apis-androidpublisher_v3 (0.29.0)
|
google-apis-androidpublisher_v3 (0.36.0)
|
||||||
google-apis-core (>= 0.9.0, < 2.a)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-core (0.9.0)
|
google-apis-core (0.11.0)
|
||||||
addressable (~> 2.5, >= 2.5.1)
|
addressable (~> 2.5, >= 2.5.1)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
httpclient (>= 2.8.1, < 3.a)
|
httpclient (>= 2.8.1, < 3.a)
|
||||||
@@ -120,10 +120,10 @@ GEM
|
|||||||
retriable (>= 2.0, < 4.a)
|
retriable (>= 2.0, < 4.a)
|
||||||
rexml
|
rexml
|
||||||
webrick
|
webrick
|
||||||
google-apis-iamcredentials_v1 (0.15.0)
|
google-apis-iamcredentials_v1 (0.17.0)
|
||||||
google-apis-core (>= 0.9.0, < 2.a)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-playcustomapp_v1 (0.11.0)
|
google-apis-playcustomapp_v1 (0.13.0)
|
||||||
google-apis-core (>= 0.9.0, < 2.a)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-storage_v1 (0.19.0)
|
google-apis-storage_v1 (0.19.0)
|
||||||
google-apis-core (>= 0.9.0, < 2.a)
|
google-apis-core (>= 0.9.0, < 2.a)
|
||||||
google-cloud-core (1.6.0)
|
google-cloud-core (1.6.0)
|
||||||
@@ -131,8 +131,8 @@ GEM
|
|||||||
google-cloud-errors (~> 1.0)
|
google-cloud-errors (~> 1.0)
|
||||||
google-cloud-env (1.6.0)
|
google-cloud-env (1.6.0)
|
||||||
faraday (>= 0.17.3, < 3.0)
|
faraday (>= 0.17.3, < 3.0)
|
||||||
google-cloud-errors (1.3.0)
|
google-cloud-errors (1.3.1)
|
||||||
google-cloud-storage (1.43.0)
|
google-cloud-storage (1.44.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
digest-crc (~> 0.4)
|
digest-crc (~> 0.4)
|
||||||
google-apis-iamcredentials_v1 (~> 0.1)
|
google-apis-iamcredentials_v1 (~> 0.1)
|
||||||
@@ -140,7 +140,7 @@ GEM
|
|||||||
google-cloud-core (~> 1.6)
|
google-cloud-core (~> 1.6)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
mini_mime (~> 1.0)
|
mini_mime (~> 1.0)
|
||||||
googleauth (1.2.0)
|
googleauth (1.3.0)
|
||||||
faraday (>= 0.17.3, < 3.a)
|
faraday (>= 0.17.3, < 3.a)
|
||||||
jwt (>= 1.4, < 3.0)
|
jwt (>= 1.4, < 3.0)
|
||||||
memoist (~> 0.16)
|
memoist (~> 0.16)
|
||||||
@@ -152,14 +152,14 @@ GEM
|
|||||||
http-cookie (1.0.5)
|
http-cookie (1.0.5)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
jmespath (1.6.1)
|
jmespath (1.6.2)
|
||||||
json (2.6.2)
|
json (2.6.3)
|
||||||
jwt (2.5.0)
|
jwt (2.7.0)
|
||||||
memoist (0.16.2)
|
memoist (0.16.2)
|
||||||
mime-types (3.4.1)
|
mime-types (3.4.1)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2022.0105)
|
mime-types-data (3.2023.0218.1)
|
||||||
mini_magick (4.11.0)
|
mini_magick (4.12.0)
|
||||||
mini_mime (1.1.2)
|
mini_mime (1.1.2)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
@@ -168,8 +168,8 @@ GEM
|
|||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
optparse (0.1.1)
|
optparse (0.1.1)
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
plist (3.6.0)
|
plist (3.7.0)
|
||||||
public_suffix (5.0.0)
|
public_suffix (5.0.1)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
representable (3.2.0)
|
representable (3.2.0)
|
||||||
declarative (< 0.1.0)
|
declarative (< 0.1.0)
|
||||||
@@ -191,7 +191,7 @@ GEM
|
|||||||
faraday (>= 0.17.5, < 3.a)
|
faraday (>= 0.17.5, < 3.a)
|
||||||
jwt (>= 1.5, < 3.0)
|
jwt (>= 1.5, < 3.0)
|
||||||
multi_json (~> 1.10)
|
multi_json (~> 1.10)
|
||||||
simctl (1.6.8)
|
simctl (1.6.10)
|
||||||
CFPropertyList
|
CFPropertyList
|
||||||
naturally
|
naturally
|
||||||
terminal-notifier (2.0.0)
|
terminal-notifier (2.0.0)
|
||||||
@@ -207,7 +207,7 @@ GEM
|
|||||||
unf_ext
|
unf_ext
|
||||||
unf_ext (0.0.8.2)
|
unf_ext (0.0.8.2)
|
||||||
unicode-display_width (1.8.0)
|
unicode-display_width (1.8.0)
|
||||||
webrick (1.7.0)
|
webrick (1.8.1)
|
||||||
word_wrap (1.0.0)
|
word_wrap (1.0.0)
|
||||||
xcodeproj (1.22.0)
|
xcodeproj (1.22.0)
|
||||||
CFPropertyList (>= 2.3.3, < 4.0)
|
CFPropertyList (>= 2.3.3, < 4.0)
|
||||||
@@ -230,4 +230,4 @@ DEPENDENCIES
|
|||||||
fastlane-plugin-diawi
|
fastlane-plugin-diawi
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.20
|
2.4.6
|
||||||
|
|||||||
@@ -45,10 +45,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0x58gl654kcx65wyrix5swh5f9y431881a5mql8g3zwshd81fyb3";
|
sha256 = "0q3q19insq5ablmr6ypq033qg1gsar5mdphhp7xg80rd615cnq97";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.644.0";
|
version = "1.728.0";
|
||||||
};
|
};
|
||||||
aws-sdk-core = {
|
aws-sdk-core = {
|
||||||
dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
|
dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
|
||||||
@@ -56,10 +56,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0cdjmpblskjmhag7wx6scwkd3cw1gfh85syr599s05k8zp6y4qw8";
|
sha256 = "0zc4zhv2wq7s5p8c9iaplama1lpg2kwldg81j83c8w4xydf1wd2r";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.159.0";
|
version = "3.170.0";
|
||||||
};
|
};
|
||||||
aws-sdk-kms = {
|
aws-sdk-kms = {
|
||||||
dependencies = ["aws-sdk-core" "aws-sigv4"];
|
dependencies = ["aws-sdk-core" "aws-sigv4"];
|
||||||
@@ -67,10 +67,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1p2dbmb1vl8vk2xchrrsp2sxa95ya5w7ll1jlw89yyhls3l2l1ag";
|
sha256 = "0v87zi28dfmrv7bv91yfldccnpd63n295siirbz7wqv1rajn8n02";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.58.0";
|
version = "1.63.0";
|
||||||
};
|
};
|
||||||
aws-sdk-s3 = {
|
aws-sdk-s3 = {
|
||||||
dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
|
dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
|
||||||
@@ -78,10 +78,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1r6dxz3llgxbbm66jq5mkzk0i6qsxwv0d9s0ipwb23vv3bgp23yf";
|
sha256 = "1rpnlzsl52znhcki13jkwdshgwf51pn26267481f4fa842gr7xgp";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.114.0";
|
version = "1.119.1";
|
||||||
};
|
};
|
||||||
aws-sigv4 = {
|
aws-sigv4 = {
|
||||||
dependencies = ["aws-eventstream"];
|
dependencies = ["aws-eventstream"];
|
||||||
@@ -110,10 +110,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7";
|
sha256 = "1a36zn77yyibqsfpka0i8vgf3yv98ic2b9wwlbc29566y8wpa2bq";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.0.5";
|
version = "3.0.6";
|
||||||
};
|
};
|
||||||
claide = {
|
claide = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -213,10 +213,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0b3rfqy87yiv9xmh260nyddxxjqj0vy32xvajvyn5jnjx96jwa24";
|
sha256 = "0j826kfvzn7nc5pv950n270r0sx1702k988ad11cdlav3dcxxw09";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "0.93.0";
|
version = "0.99.0";
|
||||||
};
|
};
|
||||||
faraday = {
|
faraday = {
|
||||||
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
|
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
|
||||||
@@ -224,10 +224,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1d5ipsv069dhgv9zhxgj8pz4j52yhgvfm01aq881yz7qgjd7ilxp";
|
sha256 = "1c760q0ks4vj4wmaa7nh1dgvgqiwaw0mjr7v8cymy7i3ffgjxx90";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.10.2";
|
version = "1.10.3";
|
||||||
};
|
};
|
||||||
faraday-cookie_jar = {
|
faraday-cookie_jar = {
|
||||||
dependencies = ["faraday" "http-cookie"];
|
dependencies = ["faraday" "http-cookie"];
|
||||||
@@ -368,10 +368,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1wxzcs81c5ji30hrz64884rg0w56v2nwjyiyc8daka578bg7s8d6";
|
sha256 = "0b22m2dkydyv2si55b1jzznzgxf2ycx2aarv1j5p25k861h2gsml";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.210.1";
|
version = "2.212.1";
|
||||||
};
|
};
|
||||||
fastlane-plugin-clean_testflight_testers = {
|
fastlane-plugin-clean_testflight_testers = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -410,10 +410,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0z2i5wpkawkf4f42i55b1240iw8819wx828579s4vavhd9s17yik";
|
sha256 = "1mbnmn36z1cnsd6ar76p9wvqi0ac6wlpm1p1lqczivain16qma76";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "0.29.0";
|
version = "0.36.0";
|
||||||
};
|
};
|
||||||
google-apis-core = {
|
google-apis-core = {
|
||||||
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"];
|
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"];
|
||||||
@@ -421,10 +421,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1w9m4zc5xswz2h7gj4jvnb1ivzb6lcsl75fnw8ip7qz6hzwfgrlc";
|
sha256 = "184zkm5agi7r5fl79hgahjpydsc4d23nd2ynh2sr9z8gs2w4h82f";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "0.9.0";
|
version = "0.11.0";
|
||||||
};
|
};
|
||||||
google-apis-iamcredentials_v1 = {
|
google-apis-iamcredentials_v1 = {
|
||||||
dependencies = ["google-apis-core"];
|
dependencies = ["google-apis-core"];
|
||||||
@@ -432,10 +432,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "06smnmn2s460xl9x9rh07a3fkqdrjjy6azmx8iywggqgv2k5d8p9";
|
sha256 = "0ysil0bkh755kmf9xvw5szhk1yyh3gqzwfsrbwsrl77gsv7jarcs";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "0.15.0";
|
version = "0.17.0";
|
||||||
};
|
};
|
||||||
google-apis-playcustomapp_v1 = {
|
google-apis-playcustomapp_v1 = {
|
||||||
dependencies = ["google-apis-core"];
|
dependencies = ["google-apis-core"];
|
||||||
@@ -443,10 +443,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "00nfh3xh51mbh02f8nqlsijdh59k9vjs5sglvpv09pl3wnhirf7w";
|
sha256 = "1mlgwiid5lgg41y7qk8ca9lzhwx5njs25hz5fbf1mdal0kwm37lm";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "0.11.0";
|
version = "0.13.0";
|
||||||
};
|
};
|
||||||
google-apis-storage_v1 = {
|
google-apis-storage_v1 = {
|
||||||
dependencies = ["google-apis-core"];
|
dependencies = ["google-apis-core"];
|
||||||
@@ -486,10 +486,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0jynh1s93nl8njm5l5wcy86pnjmv112cq6m0443s52f04hg6h2s5";
|
sha256 = "0flpj7v196c3xsqx4yjb7rjcj8p0by4rhj6qf5zanw4p1i41ssf0";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.3.0";
|
version = "1.3.1";
|
||||||
};
|
};
|
||||||
google-cloud-storage = {
|
google-cloud-storage = {
|
||||||
dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
|
dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
|
||||||
@@ -497,10 +497,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0j3hqyb4zgj6az6p0bz0kgskl6fddrwb095kxfbdx8r11m07mfr8";
|
sha256 = "1skhlpcykxxzw3050cwngdyc3n746wfx443w1w9chxwjbh2ix6i9";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.43.0";
|
version = "1.44.0";
|
||||||
};
|
};
|
||||||
googleauth = {
|
googleauth = {
|
||||||
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
|
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
|
||||||
@@ -508,10 +508,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "030bcdnffwndk8h270cmbndixb5h3ss860yifv6bkfys95s5fjpp";
|
sha256 = "1hpwgwhk0lmnknkw8kbdfxn95qqs6aagpq815l5fkw9w6mi77pai";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.2.0";
|
version = "1.3.0";
|
||||||
};
|
};
|
||||||
highline = {
|
highline = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -559,30 +559,30 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0";
|
sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.6.1";
|
version = "1.6.2";
|
||||||
};
|
};
|
||||||
json = {
|
json = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0yk5d10yvspkc5jyvx9gc1a9pn1z8v4k2hvjk1l88zixwf3wf3cl";
|
sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.6.2";
|
version = "2.6.3";
|
||||||
};
|
};
|
||||||
jwt = {
|
jwt = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0kcmnx6rgjyd7sznai9ccns2nh7p7wnw3mi8a7vf2wkm51azwddq";
|
sha256 = "09yj3z5snhaawh2z1w45yyihzmh57m6m7dp8ra8gxavhj5kbiq5p";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.5.0";
|
version = "2.7.0";
|
||||||
};
|
};
|
||||||
memoist = {
|
memoist = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -610,20 +610,20 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q";
|
sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.2022.0105";
|
version = "3.2023.0218.1";
|
||||||
};
|
};
|
||||||
mini_magick = {
|
mini_magick = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
|
sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "4.11.0";
|
version = "4.12.0";
|
||||||
};
|
};
|
||||||
mini_mime = {
|
mini_mime = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -710,20 +710,20 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
|
sha256 = "0wzhnbzraz60paxhm48c50fp9xi7cqka4gfhxmiq43mhgh5ajg3h";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.6.0";
|
version = "3.7.0";
|
||||||
};
|
};
|
||||||
public_suffix = {
|
public_suffix = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0sqw1zls6227bgq38sxb2hs8nkdz4hn1zivs27mjbniswfy4zvi6";
|
sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "5.0.0";
|
version = "5.0.1";
|
||||||
};
|
};
|
||||||
rake = {
|
rake = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -834,10 +834,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1v9rsdmg5c5kkf8ps47xnrfbvjnq11sbaifr186jwkh4npawz00x";
|
sha256 = "0sr3z4kmp6ym7synicyilj9vic7i9nxgaszqx6n1xn1ss7s7g45r";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.6.8";
|
version = "1.6.10";
|
||||||
};
|
};
|
||||||
terminal-notifier = {
|
terminal-notifier = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@@ -947,10 +947,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
|
sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.7.0";
|
version = "1.8.1";
|
||||||
};
|
};
|
||||||
word_wrap = {
|
word_wrap = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
|
|||||||
@@ -43,16 +43,6 @@ abstract_target 'Status' do
|
|||||||
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# FIXME: Fix dependency signing broken on Xcode 14 due to lack of Team ID.
|
|
||||||
# https://github.com/CocoaPods/CocoaPods/issues/11402
|
|
||||||
installer.pods_project.targets.each do |target|
|
|
||||||
if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
|
|
||||||
target.build_configurations.each do |config|
|
|
||||||
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
use_native_modules!
|
use_native_modules!
|
||||||
|
|||||||
@@ -27,15 +27,15 @@ PODS:
|
|||||||
- CryptoSwift
|
- CryptoSwift
|
||||||
- secp256k1
|
- secp256k1
|
||||||
- SSZipArchive
|
- SSZipArchive
|
||||||
- libwebp (1.2.3):
|
- libwebp (1.2.4):
|
||||||
- libwebp/demux (= 1.2.3)
|
- libwebp/demux (= 1.2.4)
|
||||||
- libwebp/mux (= 1.2.3)
|
- libwebp/mux (= 1.2.4)
|
||||||
- libwebp/webp (= 1.2.3)
|
- libwebp/webp (= 1.2.4)
|
||||||
- libwebp/demux (1.2.3):
|
- libwebp/demux (1.2.4):
|
||||||
- libwebp/webp
|
- libwebp/webp
|
||||||
- libwebp/mux (1.2.3):
|
- libwebp/mux (1.2.4):
|
||||||
- libwebp/demux
|
- libwebp/demux
|
||||||
- libwebp/webp (1.2.3)
|
- libwebp/webp (1.2.4)
|
||||||
- Permission-Camera (2.1.5):
|
- Permission-Camera (2.1.5):
|
||||||
- RNPermissions
|
- RNPermissions
|
||||||
- Permission-Microphone (2.1.5):
|
- Permission-Microphone (2.1.5):
|
||||||
@@ -645,10 +645,10 @@ SPEC CHECKSUMS:
|
|||||||
FBLazyVector: 352a8ca9bbc8e2f097d680747a8c97ecef12d469
|
FBLazyVector: 352a8ca9bbc8e2f097d680747a8c97ecef12d469
|
||||||
FBReactNativeSpec: 7dfb84f624136a45727c813ed21d130cd3e61beb
|
FBReactNativeSpec: 7dfb84f624136a45727c813ed21d130cd3e61beb
|
||||||
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
||||||
glog: 997518ea2aa2d8cd5df9797b641b758d52ecf2bc
|
glog: 6934faae5afbec23475648c8aeb6047ce973af65
|
||||||
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
||||||
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
||||||
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||||
Permission-Camera: afad27bf90337684d4a86f3825112d648c8c4d3b
|
Permission-Camera: afad27bf90337684d4a86f3825112d648c8c4d3b
|
||||||
Permission-Microphone: 0ffabc3fe1c75cfb260525ee3f529383c9f4368c
|
Permission-Microphone: 0ffabc3fe1c75cfb260525ee3f529383c9f4368c
|
||||||
RCTRequired: 5520387431beaa5f32aa8726bf746cd5353119fe
|
RCTRequired: 5520387431beaa5f32aa8726bf746cd5353119fe
|
||||||
@@ -716,6 +716,6 @@ SPEC CHECKSUMS:
|
|||||||
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
||||||
Yoga: 0276e9f20976c8568e107cfc1163a8629051adc0
|
Yoga: 0276e9f20976c8568e107cfc1163a8629051adc0
|
||||||
|
|
||||||
PODFILE CHECKSUM: ca5d07911eadc1267649ecc15379e5127a0cc839
|
PODFILE CHECKSUM: dd4d6510a5580d20adac6c8a8dad97a0bc7d6508
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.12.0
|
||||||
|
|||||||
@@ -49,6 +49,12 @@
|
|||||||
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */; };
|
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */; };
|
||||||
BA68A2377A20496EA737000D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */; };
|
BA68A2377A20496EA737000D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */; };
|
||||||
BFF6343F5A1F0F5FFFC8D020 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B974811E312E44D5BBE9EC /* libPods-Status-StatusIm-StatusImTests.a */; };
|
BFF6343F5A1F0F5FFFC8D020 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B974811E312E44D5BBE9EC /* libPods-Status-StatusIm-StatusImTests.a */; };
|
||||||
|
C14C5F8D29C0A149005C58A7 /* launch-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */; };
|
||||||
|
C14C5F9129C0AD9C005C58A7 /* launch-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */; };
|
||||||
|
C14C5F9329C0ADB5005C58A7 /* launch-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9229C0ADB5005C58A7 /* launch-icon.png */; };
|
||||||
|
C1715FFA29C0BCE10088FA8B /* launch-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */; };
|
||||||
|
C1715FFB29C0BCE50088FA8B /* launch-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */; };
|
||||||
|
C1715FFC29C0BCE80088FA8B /* launch-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9229C0ADB5005C58A7 /* launch-icon.png */; };
|
||||||
CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE4E31B21D8695250033ED64 /* Statusgo.xcframework */; };
|
CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE4E31B21D8695250033ED64 /* Statusgo.xcframework */; };
|
||||||
D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */; };
|
D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */; };
|
||||||
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */; };
|
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */; };
|
||||||
@@ -142,6 +148,9 @@
|
|||||||
B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../resources/fonts/Inter-Medium.otf"; sourceTree = "<group>"; };
|
B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../resources/fonts/Inter-Medium.otf"; sourceTree = "<group>"; };
|
||||||
B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = StatusIm/Images.xcassets; sourceTree = "<group>"; };
|
B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = StatusIm/Images.xcassets; sourceTree = "<group>"; };
|
||||||
B321D25F4493470980039457 /* Inter-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.otf"; path = "../resources/fonts/Inter-BoldItalic.otf"; sourceTree = "<group>"; };
|
B321D25F4493470980039457 /* Inter-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.otf"; path = "../resources/fonts/Inter-BoldItalic.otf"; sourceTree = "<group>"; };
|
||||||
|
C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon@3x.png"; path = "StatusIm/launch-icon@3x.png"; sourceTree = "<group>"; };
|
||||||
|
C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon@2x.png"; path = "StatusIm/launch-icon@2x.png"; sourceTree = "<group>"; };
|
||||||
|
C14C5F9229C0ADB5005C58A7 /* launch-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon.png"; path = "StatusIm/launch-icon.png"; sourceTree = "<group>"; };
|
||||||
C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../resources/fonts/Inter-MediumItalic.otf"; sourceTree = "<group>"; };
|
C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../resources/fonts/Inter-MediumItalic.otf"; sourceTree = "<group>"; };
|
||||||
CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../resources/fonts/Inter-Bold.otf"; sourceTree = "<group>"; };
|
CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../resources/fonts/Inter-Bold.otf"; sourceTree = "<group>"; };
|
||||||
CE4E31B21D8695250033ED64 /* Statusgo.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Statusgo.xcframework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.xcframework"; sourceTree = "<group>"; };
|
CE4E31B21D8695250033ED64 /* Statusgo.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Statusgo.xcframework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.xcframework"; sourceTree = "<group>"; };
|
||||||
@@ -206,6 +215,9 @@
|
|||||||
13B07FAE1A68108700A75B9A /* StatusIm */ = {
|
13B07FAE1A68108700A75B9A /* StatusIm */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
C14C5F9229C0ADB5005C58A7 /* launch-icon.png */,
|
||||||
|
C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */,
|
||||||
|
C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */,
|
||||||
922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */,
|
922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */,
|
||||||
B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */,
|
B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */,
|
||||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
||||||
@@ -405,9 +417,7 @@
|
|||||||
TestTargetID = 13B07F861A680F5B00A75B9A;
|
TestTargetID = 13B07F861A680F5B00A75B9A;
|
||||||
};
|
};
|
||||||
13B07F861A680F5B00A75B9A = {
|
13B07F861A680F5B00A75B9A = {
|
||||||
DevelopmentTeam = 8B5X2M6H2Y;
|
|
||||||
LastSwiftMigration = 1140;
|
LastSwiftMigration = 1140;
|
||||||
ProvisioningStyle = Manual;
|
|
||||||
SystemCapabilities = {
|
SystemCapabilities = {
|
||||||
com.apple.BackgroundModes = {
|
com.apple.BackgroundModes = {
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
@@ -477,8 +487,10 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
C14C5F9329C0ADB5005C58A7 /* launch-icon.png in Resources */,
|
||||||
74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */,
|
74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */,
|
||||||
715D8132290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */,
|
715D8132290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */,
|
||||||
|
C14C5F9129C0AD9C005C58A7 /* launch-icon@2x.png in Resources */,
|
||||||
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */,
|
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */,
|
||||||
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */,
|
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */,
|
||||||
D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */,
|
D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */,
|
||||||
@@ -489,6 +501,7 @@
|
|||||||
70ADBB5ECF934DCF8A0E4919 /* Inter-Regular.otf in Resources */,
|
70ADBB5ECF934DCF8A0E4919 /* Inter-Regular.otf in Resources */,
|
||||||
3870E1E692E24133A80B07DE /* Inter-SemiBold.otf in Resources */,
|
3870E1E692E24133A80B07DE /* Inter-SemiBold.otf in Resources */,
|
||||||
8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */,
|
8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */,
|
||||||
|
C14C5F8D29C0A149005C58A7 /* launch-icon@3x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -501,13 +514,16 @@
|
|||||||
3AAD2ACB24A3A60E0075D594 /* Images.xcassets in Resources */,
|
3AAD2ACB24A3A60E0075D594 /* Images.xcassets in Resources */,
|
||||||
3AAD2ACC24A3A60E0075D594 /* Inter-Bold.otf in Resources */,
|
3AAD2ACC24A3A60E0075D594 /* Inter-Bold.otf in Resources */,
|
||||||
3AAD2ACD24A3A60E0075D594 /* Inter-BoldItalic.otf in Resources */,
|
3AAD2ACD24A3A60E0075D594 /* Inter-BoldItalic.otf in Resources */,
|
||||||
|
C1715FFA29C0BCE10088FA8B /* launch-icon@2x.png in Resources */,
|
||||||
3AAD2ACE24A3A60E0075D594 /* InterStatus-Regular.otf in Resources */,
|
3AAD2ACE24A3A60E0075D594 /* InterStatus-Regular.otf in Resources */,
|
||||||
3AAD2ACF24A3A60E0075D594 /* Inter-Italic.otf in Resources */,
|
3AAD2ACF24A3A60E0075D594 /* Inter-Italic.otf in Resources */,
|
||||||
3AAD2AD024A3A60E0075D594 /* Inter-Medium.otf in Resources */,
|
3AAD2AD024A3A60E0075D594 /* Inter-Medium.otf in Resources */,
|
||||||
3AAD2AD124A3A60E0075D594 /* Inter-MediumItalic.otf in Resources */,
|
3AAD2AD124A3A60E0075D594 /* Inter-MediumItalic.otf in Resources */,
|
||||||
3AAD2AD224A3A60E0075D594 /* Inter-Regular.otf in Resources */,
|
3AAD2AD224A3A60E0075D594 /* Inter-Regular.otf in Resources */,
|
||||||
|
C1715FFC29C0BCE80088FA8B /* launch-icon.png in Resources */,
|
||||||
3AAD2AD324A3A60E0075D594 /* Inter-SemiBold.otf in Resources */,
|
3AAD2AD324A3A60E0075D594 /* Inter-SemiBold.otf in Resources */,
|
||||||
3AAD2AD424A3A60E0075D594 /* Inter-SemiBoldItalic.otf in Resources */,
|
3AAD2AD424A3A60E0075D594 /* Inter-SemiBoldItalic.otf in Resources */,
|
||||||
|
C1715FFB29C0BCE50088FA8B /* launch-icon@3x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -526,7 +542,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = "/usr/bin/env sh";
|
shellPath = "/usr/bin/env sh";
|
||||||
shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\" --openssl-legacy-provider --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./react-native-xcode.log 2>&1";
|
shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\" --openssl-legacy-provider --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./logs/react-native-xcode.log 2>&1";
|
||||||
};
|
};
|
||||||
0F876BD5356F61BF142A01A0 /* [CP] Check Pods Manifest.lock */ = {
|
0F876BD5356F61BF142A01A0 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
@@ -584,7 +600,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = "/usr/bin/env sh";
|
shellPath = "/usr/bin/env sh";
|
||||||
shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\" --openssl-legacy-provider --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./react-native-xcode.log 2>&1";
|
shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\" --openssl-legacy-provider --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./logs/react-native-xcode.log 2>&1";
|
||||||
};
|
};
|
||||||
3AAD2AD724A3A60E0075D594 /* Run Script */ = {
|
3AAD2AD724A3A60E0075D594 /* Run Script */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
@@ -598,7 +614,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 1;
|
runOnlyForDeploymentPostprocessing = 1;
|
||||||
shellPath = "/usr/bin/env sh";
|
shellPath = "/usr/bin/env sh";
|
||||||
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ./set_xcode_version.log 2>&1";
|
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ./logs/set_xcode_version.log 2>&1";
|
||||||
};
|
};
|
||||||
3C1038075AE5E6FB86AC2319 /* [CP] Copy Pods Resources */ = {
|
3C1038075AE5E6FB86AC2319 /* [CP] Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
@@ -678,7 +694,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 1;
|
runOnlyForDeploymentPostprocessing = 1;
|
||||||
shellPath = "/usr/bin/env sh";
|
shellPath = "/usr/bin/env sh";
|
||||||
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ./set_xcode_version.log 2>&1";
|
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ./logs/set_xcode_version.log 2>&1";
|
||||||
};
|
};
|
||||||
E732E3E1B024946173BF6D3D /* [CP] Copy Pods Resources */ = {
|
E732E3E1B024946173BF6D3D /* [CP] Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
@@ -825,9 +841,8 @@
|
|||||||
BUNDLE_ID_SUFFIX = .debug;
|
BUNDLE_ID_SUFFIX = .debug;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements;
|
CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CUSTOM_PRODUCT_NAME = "Status Debug";
|
CUSTOM_PRODUCT_NAME = "Status Debug";
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 8B5X2M6H2Y;
|
DEVELOPMENT_TEAM = 8B5X2M6H2Y;
|
||||||
@@ -880,8 +895,7 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
||||||
PRODUCT_NAME = StatusIm;
|
PRODUCT_NAME = StatusIm;
|
||||||
PROVISIONING_PROFILE = "9da75626-9594-43d9-a827-0f6d43c28f54";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "match Development im.status.ethereum";
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@@ -899,9 +913,8 @@
|
|||||||
BUNDLE_ID_SUFFIX = "";
|
BUNDLE_ID_SUFFIX = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements;
|
CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CUSTOM_PRODUCT_NAME = Status;
|
CUSTOM_PRODUCT_NAME = Status;
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 8B5X2M6H2Y;
|
DEVELOPMENT_TEAM = 8B5X2M6H2Y;
|
||||||
@@ -946,8 +959,7 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
||||||
PRODUCT_NAME = StatusIm;
|
PRODUCT_NAME = StatusIm;
|
||||||
PROVISIONING_PROFILE = "e2202b12-7a66-4ff7-af3c-a52e35f32dc1";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "match AdHoc im.status.ethereum";
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -119,6 +119,8 @@
|
|||||||
<array>
|
<array>
|
||||||
<string>armv7</string>
|
<string>armv7</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>UIStatusBarStyle</key>
|
||||||
|
<string>UIStatusBarStyleLightContent</string>
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -123,6 +123,8 @@
|
|||||||
<string>armv7</string>
|
<string>armv7</string>
|
||||||
<string>gamekit</string>
|
<string>gamekit</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>UIStatusBarStyle</key>
|
||||||
|
<string>UIStatusBarStyleLightContent</string>
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Lsa-QA-3zn">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Lsa-QA-3zn">
|
||||||
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<deployment identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
|
||||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
@@ -17,14 +16,20 @@
|
|||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="launch_image" translatesAutoresizingMaskIntoConstraints="NO" id="cqW-9w-FC0">
|
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="launch-icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="cqW-9w-FC0">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
<color key="backgroundColor" red="0.035294117647058823" green="0.062745098039215685" blue="0.10980392156862745" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
|
||||||
</imageView>
|
</imageView>
|
||||||
</subviews>
|
</subviews>
|
||||||
<viewLayoutGuide key="safeArea" id="2aN-f8-qiu"/>
|
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="cqW-9w-FC0" secondAttribute="bottom" id="2Ue-hX-Tna"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="cqW-9w-FC0" secondAttribute="trailing" id="Sfz-tk-PSg"/>
|
||||||
|
<constraint firstItem="cqW-9w-FC0" firstAttribute="leading" secondItem="0g6-xG-Wkj" secondAttribute="leading" id="UQo-dC-xeN"/>
|
||||||
|
<constraint firstItem="cqW-9w-FC0" firstAttribute="top" secondItem="0g6-xG-Wkj" secondAttribute="top" id="YrE-J2-QHf"/>
|
||||||
|
<constraint firstItem="cqW-9w-FC0" firstAttribute="centerX" secondItem="0g6-xG-Wkj" secondAttribute="centerX" id="ZQS-4G-GAL"/>
|
||||||
|
<constraint firstItem="cqW-9w-FC0" firstAttribute="centerY" secondItem="0g6-xG-Wkj" secondAttribute="centerY" id="noT-Rj-8Uy"/>
|
||||||
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="hOp-FG-FML" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="hOp-FG-FML" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
@@ -33,7 +38,7 @@
|
|||||||
</scene>
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="launch_image" width="90" height="101"/>
|
<image name="launch-icon.png" width="84" height="88"/>
|
||||||
<systemColor name="systemBackgroundColor">
|
<systemColor name="systemBackgroundColor">
|
||||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
</systemColor>
|
</systemColor>
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Description
|
||||||
|
|
||||||
|
This directory is the destination of logs created by Fastlane and React Native Xcode script.
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
|
||||||
|
* `react-native-xcode.log` - Output from `node_modules/react-native/scripts/react-native-xcode.sh`.
|
||||||
|
- Created by redirecting output of `shellScript` in `ios/StatusIm.xcodeproj/project.pbxproj`.
|
||||||
|
* `Status PR-StatusImPR.log - Created by [Fastlane Gym](https://docs.fastlane.tools/actions/gym/).
|
||||||
|
- Configred via [`Fastfile`](../Fastfile) using `buildlog_path` argument for `build_ios_app`.
|
||||||
|
|
||||||
|
# CI
|
||||||
|
|
||||||
|
These log files are uploaded to Jenkins as CI job artifacts on failure using `archiveArtifacts`.
|
||||||
@@ -323,6 +323,30 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||||||
callback.invoke(finalConfig);
|
callback.invoke(finalConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void createAccountAndLogin(final String createAccountRequest) {
|
||||||
|
Log.d(TAG, "createAccountAndLogin");
|
||||||
|
String result = Statusgo.createAccountAndLogin(createAccountRequest);
|
||||||
|
if (result.startsWith("{\"error\":\"\"")) {
|
||||||
|
Log.d(TAG, "createAccountAndLogin success: " + result);
|
||||||
|
Log.d(TAG, "Geth node started");
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "createAccountAndLogin failed: " + result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void restoreAccountAndLogin(final String restoreAccountRequest) {
|
||||||
|
Log.d(TAG, "restoreAccountAndLogin");
|
||||||
|
String result = Statusgo.restoreAccountAndLogin(restoreAccountRequest);
|
||||||
|
if (result.startsWith("{\"error\":\"\"")) {
|
||||||
|
Log.d(TAG, "restoreAccountAndLogin success: " + result);
|
||||||
|
Log.d(TAG, "Geth node started");
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "restoreAccountAndLogin failed: " + result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ReactMethod
|
@ReactMethod
|
||||||
public void saveAccountAndLogin(final String multiaccountData, final String password, final String settings, final String config, final String accountsData) {
|
public void saveAccountAndLogin(final String multiaccountData, final String password, final String settings, final String config, final String accountsData) {
|
||||||
try {
|
try {
|
||||||
@@ -520,6 +544,8 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.d(TAG, "[Opening accounts" + rootDir);
|
||||||
|
|
||||||
Runnable r = new Runnable() {
|
Runnable r = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -785,9 +811,10 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||||||
@ReactMethod
|
@ReactMethod
|
||||||
public void getConnectionStringForBootstrappingAnotherDevice(final String configJSON, final Callback callback) throws JSONException {
|
public void getConnectionStringForBootstrappingAnotherDevice(final String configJSON, final Callback callback) throws JSONException {
|
||||||
final JSONObject jsonConfig = new JSONObject(configJSON);
|
final JSONObject jsonConfig = new JSONObject(configJSON);
|
||||||
final String keyUID = jsonConfig.getString("keyUID");
|
final JSONObject senderConfig = jsonConfig.getJSONObject("senderConfig");
|
||||||
|
final String keyUID = senderConfig.getString("keyUID");
|
||||||
final String keyStorePath = this.getKeyStorePath(keyUID);
|
final String keyStorePath = this.getKeyStorePath(keyUID);
|
||||||
jsonConfig.put("keystorePath", keyStorePath);
|
senderConfig.put("keystorePath", keyStorePath);
|
||||||
|
|
||||||
executeRunnableStatusGoMethod(() -> Statusgo.getConnectionStringForBootstrappingAnotherDevice(jsonConfig.toString()), callback);
|
executeRunnableStatusGoMethod(() -> Statusgo.getConnectionStringForBootstrappingAnotherDevice(jsonConfig.toString()), callback);
|
||||||
}
|
}
|
||||||
@@ -795,9 +822,10 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||||||
@ReactMethod
|
@ReactMethod
|
||||||
public void inputConnectionStringForBootstrapping(final String connectionString, final String configJSON, final Callback callback) throws JSONException {
|
public void inputConnectionStringForBootstrapping(final String connectionString, final String configJSON, final Callback callback) throws JSONException {
|
||||||
final JSONObject jsonConfig = new JSONObject(configJSON);
|
final JSONObject jsonConfig = new JSONObject(configJSON);
|
||||||
|
final JSONObject receiverConfig = jsonConfig.getJSONObject("receiverConfig");
|
||||||
final String keyStorePath = pathCombine(this.getNoBackupDirectory(), "/keystore");
|
final String keyStorePath = pathCombine(this.getNoBackupDirectory(), "/keystore");
|
||||||
jsonConfig.put("keystorePath", keyStorePath);
|
receiverConfig.put("keystorePath", keyStorePath);
|
||||||
jsonConfig.put("rootDataDir", this.getNoBackupDirectory());
|
receiverConfig.getJSONObject("nodeConfig").put("rootDataDir", this.getNoBackupDirectory());
|
||||||
executeRunnableStatusGoMethod(() -> Statusgo.inputConnectionStringForBootstrapping(connectionString, jsonConfig.toString()), callback);
|
executeRunnableStatusGoMethod(() -> Statusgo.inputConnectionStringForBootstrapping(connectionString, jsonConfig.toString()), callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1129,6 +1157,23 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||||||
executeRunnableStatusGoMethod(() -> Statusgo.deleteImportedKey(address, password, keyStoreDir), callback);
|
executeRunnableStatusGoMethod(() -> Statusgo.deleteImportedKey(address, password, keyStoreDir), callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||||
|
public String keystoreDir() {
|
||||||
|
final String absRootDirPath = this.getNoBackupDirectory();
|
||||||
|
return pathCombine(absRootDirPath, "keystore");
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||||
|
public String backupDisabledDataDir() {
|
||||||
|
return this.getNoBackupDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||||
|
public String logFilePath() {
|
||||||
|
return getLogsFile().getAbsolutePath();
|
||||||
|
}
|
||||||
|
|
||||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||||
public String generateAlias(final String seed) {
|
public String generateAlias(final String seed) {
|
||||||
return Statusgo.generateAlias(seed);
|
return Statusgo.generateAlias(seed);
|
||||||
|
|||||||
@@ -309,12 +309,14 @@ RCT_EXPORT_METHOD(getConnectionStringForBootstrappingAnotherDevice:(NSString *)c
|
|||||||
callback:(RCTResponseSenderBlock)callback) {
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
|
|
||||||
NSData *configData = [configJSON dataUsingEncoding:NSUTF8StringEncoding];
|
NSData *configData = [configJSON dataUsingEncoding:NSUTF8StringEncoding];
|
||||||
NSDictionary *configDict = [NSJSONSerialization JSONObjectWithData:configData options:NSJSONReadingMutableContainers error:nil];
|
NSError *error;
|
||||||
NSString *keyUID = [configDict objectForKey:@"keyUID"];
|
NSMutableDictionary *configDict = [NSJSONSerialization JSONObjectWithData:configData options:NSJSONReadingMutableContainers error:&error];
|
||||||
|
NSMutableDictionary *senderConfig = configDict[@"senderConfig"];
|
||||||
|
NSString *keyUID = senderConfig[@"keyUID"];
|
||||||
NSURL *multiaccountKeystoreDir = [self getKeyStoreDir:keyUID];
|
NSURL *multiaccountKeystoreDir = [self getKeyStoreDir:keyUID];
|
||||||
NSString *keystoreDir = multiaccountKeystoreDir.path;
|
NSString *keystoreDir = multiaccountKeystoreDir.path;
|
||||||
|
|
||||||
[configDict setValue:keystoreDir forKey:@"keystorePath"];
|
[senderConfig setValue:keystoreDir forKey:@"keystorePath"];
|
||||||
NSString *modifiedConfigJSON = [configDict bv_jsonStringWithPrettyPrint:NO];
|
NSString *modifiedConfigJSON = [configDict bv_jsonStringWithPrettyPrint:NO];
|
||||||
|
|
||||||
NSString *result = StatusgoGetConnectionStringForBootstrappingAnotherDevice(modifiedConfigJSON);
|
NSString *result = StatusgoGetConnectionStringForBootstrappingAnotherDevice(modifiedConfigJSON);
|
||||||
@@ -326,17 +328,20 @@ RCT_EXPORT_METHOD(inputConnectionStringForBootstrapping:(NSString *)cs
|
|||||||
callback:(RCTResponseSenderBlock)callback) {
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
|
|
||||||
NSData *configData = [configJSON dataUsingEncoding:NSUTF8StringEncoding];
|
NSData *configData = [configJSON dataUsingEncoding:NSUTF8StringEncoding];
|
||||||
NSDictionary *configDict = [NSJSONSerialization JSONObjectWithData:configData options:NSJSONReadingMutableContainers error:nil];
|
NSError *error;
|
||||||
|
NSMutableDictionary *configDict = [NSJSONSerialization JSONObjectWithData:configData options:NSJSONReadingMutableContainers error:&error];
|
||||||
|
NSMutableDictionary *receiverConfig = configDict[@"receiverConfig"];
|
||||||
|
NSMutableDictionary *nodeConfig = receiverConfig[@"nodeConfig"];
|
||||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
NSURL *rootUrl =[[fileManager URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
|
NSURL *rootUrl =[[fileManager URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
|
||||||
NSURL *rootDataDir = rootUrl.path;
|
|
||||||
NSURL *multiaccountKeystoreDir = [rootUrl URLByAppendingPathComponent:@"keystore"];
|
NSURL *multiaccountKeystoreDir = [rootUrl URLByAppendingPathComponent:@"keystore"];
|
||||||
NSString *keystoreDir = multiaccountKeystoreDir.path;
|
NSString *keystoreDir = multiaccountKeystoreDir.path;
|
||||||
|
NSString *rootDataDir = rootUrl.path;
|
||||||
|
|
||||||
[configDict setValue:keystoreDir forKey:@"keystorePath"];
|
[receiverConfig setValue:keystoreDir forKey:@"keystorePath"];
|
||||||
[configDict setValue:rootDataDir forKey:@"rootDataDir"];
|
[nodeConfig setValue:rootDataDir forKey:@"rootDataDir"];
|
||||||
NSString *modifiedConfigJSON = [configDict bv_jsonStringWithPrettyPrint:NO];
|
NSString *modifiedConfigJSON = [configDict bv_jsonStringWithPrettyPrint:NO];
|
||||||
NSString *result = StatusgoInputConnectionStringForBootstrapping(cs,modifiedConfigJSON);
|
NSString *result = StatusgoInputConnectionStringForBootstrapping(cs, modifiedConfigJSON);
|
||||||
callback(@[result]);
|
callback(@[result]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -857,6 +862,34 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(generateAlias:(NSString *)publicKey) {
|
|||||||
return StatusgoGenerateAlias(publicKey);
|
return StatusgoGenerateAlias(publicKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(keystoreDir) {
|
||||||
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
|
NSURL *rootUrl =[[fileManager
|
||||||
|
URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask]
|
||||||
|
lastObject];
|
||||||
|
|
||||||
|
NSURL *commonKeystoreDir = [rootUrl URLByAppendingPathComponent:@"keystore"];
|
||||||
|
|
||||||
|
return commonKeystoreDir.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(backupDisabledDataDir) {
|
||||||
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
|
NSURL *rootUrl =[[fileManager
|
||||||
|
URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask]
|
||||||
|
lastObject];
|
||||||
|
return rootUrl.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(logFilePath) {
|
||||||
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
|
NSURL *rootUrl =[[fileManager
|
||||||
|
URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask]
|
||||||
|
lastObject];
|
||||||
|
return rootUrl.path;
|
||||||
|
}
|
||||||
|
|
||||||
RCT_EXPORT_METHOD(generateAliasAsync:(NSString *)publicKey
|
RCT_EXPORT_METHOD(generateAliasAsync:(NSString *)publicKey
|
||||||
callback:(RCTResponseSenderBlock)callback) {
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@@ -934,6 +967,20 @@ RCT_EXPORT_METHOD(identiconAsync:(NSString *)publicKey
|
|||||||
callback(@[result]);
|
callback(@[result]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(createAccountAndLogin:(NSString *)request) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"createAccountAndLogin() method called");
|
||||||
|
#endif
|
||||||
|
StatusgoCreateAccountAndLogin(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(restoreAccountAndLogin:(NSString *)request) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"restoreAccountAndLogin() method called");
|
||||||
|
#endif
|
||||||
|
StatusgoRestoreAccountAndLogin(request);
|
||||||
|
}
|
||||||
|
|
||||||
RCT_EXPORT_METHOD(generateAliasAndIdenticonAsync:(NSString *)publicKey
|
RCT_EXPORT_METHOD(generateAliasAndIdenticonAsync:(NSString *)publicKey
|
||||||
callback:(RCTResponseSenderBlock)callback) {
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|||||||
@@ -479,6 +479,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "androidx/core/core-splashscreen/1.0.0",
|
||||||
|
"repo": "https://dl.google.com/dl/android/maven2",
|
||||||
|
"files": {
|
||||||
|
"core-splashscreen-1.0.0.pom": {
|
||||||
|
"sha1": "763acf4fa60a08a3c059a4c50d3d54ac34a0cfa2",
|
||||||
|
"sha256": "0arxyx9zlzwlr0h88xmgzlgbjfp3s79pd7mbk3ipfqwkfgbzzmq3"
|
||||||
|
},
|
||||||
|
"core-splashscreen-1.0.0.aar": {
|
||||||
|
"sha1": "6b1eccca966811faafb13f6c2f88351504dc9eae",
|
||||||
|
"sha256": "0wiarwyh5rk7ca54b0i47rs7ix49r2krrvhiqamw8gyaq4yv51iy"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "androidx/core/core/1.0.0",
|
"path": "androidx/core/core/1.0.0",
|
||||||
"repo": "https://dl.google.com/dl/android/maven2",
|
"repo": "https://dl.google.com/dl/android/maven2",
|
||||||
@@ -10572,6 +10587,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21",
|
||||||
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
|
"files": {
|
||||||
|
"kotlin-stdlib-common-1.6.21.pom": {
|
||||||
|
"sha1": "747a8ea8a8a4328946cf0252c5ceb2aa0ceb054f",
|
||||||
|
"sha256": "18kbabqzyiv5rzcvxzn28wsk6cxnh7aliiayian2sg7xfgp5dhav"
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-common-1.6.21.jar": {
|
||||||
|
"sha1": "5e5b55c26dbc80372a920aef60eb774b714559b8",
|
||||||
|
"sha256": "0qr34h6pkf6bw6vagc06y78ln6gikj3qq3hrgfai8flzrmcyqfqq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
@@ -11022,6 +11052,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.6.21",
|
||||||
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
|
"files": {
|
||||||
|
"kotlin-stdlib-1.6.21.pom": {
|
||||||
|
"sha1": "f44be76009ce4253eaa59b914f4dccc384442016",
|
||||||
|
"sha256": "0d0zmvx7znha69ir50z72n7nzgw4yr6rfzb6mb6kdn0vl1dp4hnf"
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-1.6.21.jar": {
|
||||||
|
"sha1": "11ef67f1900634fd951bad28c53ec957fabbe5b8",
|
||||||
|
"sha256": "14m428q4m7y8srb7z5m0qfq8ic3f62layqwgn9rpacxvf9k5573k"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.7.10",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.7.10",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
@@ -11527,57 +11572,57 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/jcl-over-slf4j/2.0.6",
|
"path": "org/slf4j/jcl-over-slf4j/2.0.7",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
"files": {
|
"files": {
|
||||||
"jcl-over-slf4j-2.0.6.pom": {
|
"jcl-over-slf4j-2.0.7.pom": {
|
||||||
"sha1": "c9d9caedcca2a1564e47b55614960958c5f78773",
|
"sha1": "15536e4a74a7aa317322a3d7814db8251de60d6f",
|
||||||
"sha256": "1swgy5hwv54b1i1117shn3wmwba3v78qvy6cnv8v243j7ac6vzqq"
|
"sha256": "1rzjwbmzf2hb85j6c41mch803vqwqdq1rfrrirfhp1lfpfnzyd23"
|
||||||
},
|
},
|
||||||
"jcl-over-slf4j-2.0.6.jar": {
|
"jcl-over-slf4j-2.0.7.jar": {
|
||||||
"sha1": "839ff57e112f2e28ef372e96d135696a6896b9ad",
|
"sha1": "f127fe5ee53404a8b3697cdd032dd1dd6a29dd77",
|
||||||
"sha256": "0s9scdwkxwj3al87ihanj10rscrjh44kligr5asb7qpl28d1xvks"
|
"sha256": "0hhpc2qdl4aa9mb8dk89wzbd5vkna557vjmjdmfswvfjw5bng021"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-api/2.0.6",
|
"path": "org/slf4j/slf4j-api/2.0.7",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
"files": {
|
"files": {
|
||||||
"slf4j-api-2.0.6.pom": {
|
"slf4j-api-2.0.7.pom": {
|
||||||
"sha1": "2b93d5f66ad2ba259bf4b2c94da39f0d6c544400",
|
"sha1": "facf002401dbff2065d4257690651e3fa775e3f4",
|
||||||
"sha256": "0dipzawn8rxikciij2z06c25rb2vdj83s8ga3a7n10r77p2qcklb"
|
"sha256": "10br4q2w50fn3mkvk1xji81wdpy86cm0wyv6m30xa0ha1v7kqh1d"
|
||||||
},
|
},
|
||||||
"slf4j-api-2.0.6.jar": {
|
"slf4j-api-2.0.7.jar": {
|
||||||
"sha1": "88c40d8b4f33326f19a7d3c0aaf2c7e8721d4953",
|
"sha1": "41eb7184ea9d556f23e18b5cb99cad1f8581fc00",
|
||||||
"sha256": "1nkv0z4dpkvp6pr9ph8087z5r691bv95xdv3gnfi6s5j23a94aig"
|
"sha256": "1x26v62ypzpp84yfad8mx53llbacq6580y34v8nc618r7awrhqjx"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-jdk14/2.0.6",
|
"path": "org/slf4j/slf4j-jdk14/2.0.7",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
"files": {
|
"files": {
|
||||||
"slf4j-jdk14-2.0.6.pom": {
|
"slf4j-jdk14-2.0.7.pom": {
|
||||||
"sha1": "96ac9d6ab608e787d54892b35205bc6a560aa007",
|
"sha1": "31039eac9f263c48bda14efd90aef0fb7a5a0e6a",
|
||||||
"sha256": "0gnsyy1n5v8xqdy6a6p1752m5c4afihpw0n36n6aqw01y9l86q1h"
|
"sha256": "1vx1ziyx36zf2lrpkvvm4c75hp8pw8vjpiyr5120ss8nwpd33qal"
|
||||||
},
|
},
|
||||||
"slf4j-jdk14-2.0.6.jar": {
|
"slf4j-jdk14-2.0.7.jar": {
|
||||||
"sha1": "13056cb341f2d8795120f8027766a058da874f85",
|
"sha1": "d91cd16b55ffbd5f46c60d0173fd4eeccacfee2d",
|
||||||
"sha256": "0jncm8a2ppliqpzkbqm26sn98mwif8c1nligc1zh4jbzr8mxyzhy"
|
"sha256": "1xvphj12jpnvr1sw8zx42p49in4xi61mjvpxrkk3q3qpyad7017r"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-parent/2.0.6",
|
"path": "org/slf4j/slf4j-parent/2.0.7",
|
||||||
"repo": "https://repo.maven.apache.org/maven2",
|
"repo": "https://repo.maven.apache.org/maven2",
|
||||||
"files": {
|
"files": {
|
||||||
"slf4j-parent-2.0.6.pom": {
|
"slf4j-parent-2.0.7.pom": {
|
||||||
"sha1": "0f99f8426c64fc5e0c4b6749245e50484a16c372",
|
"sha1": "3f97e066227cc2353d212b8c43440b0bf4c033f3",
|
||||||
"sha256": "091il49sidk0lcmzdy0vl3a4l16kw6x1q0l9vk0hir1ipq66b0hl"
|
"sha256": "1rs55v9gqda5lks89dd81frps5c9g3zgxk832qyckw9srlvbp0n1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ androidx.constraintlayout:constraintlayout:2.0.4
|
|||||||
androidx.coordinatorlayout:coordinatorlayout:1.0.0
|
androidx.coordinatorlayout:coordinatorlayout:1.0.0
|
||||||
androidx.coordinatorlayout:coordinatorlayout:1.1.0
|
androidx.coordinatorlayout:coordinatorlayout:1.1.0
|
||||||
androidx.core:core-ktx:1.6.0
|
androidx.core:core-ktx:1.6.0
|
||||||
|
androidx.core:core-splashscreen:1.0.0
|
||||||
androidx.core:core:1.0.1
|
androidx.core:core:1.0.1
|
||||||
androidx.core:core:1.1.0
|
androidx.core:core:1.1.0
|
||||||
androidx.core:core:1.6.0
|
androidx.core:core:1.6.0
|
||||||
@@ -517,6 +518,7 @@ org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50
|
|||||||
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.31
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.31
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
|
||||||
@@ -536,6 +538,7 @@ org.jetbrains.kotlin:kotlin-stdlib:1.3.50
|
|||||||
org.jetbrains.kotlin:kotlin-stdlib:1.4.31
|
org.jetbrains.kotlin:kotlin-stdlib:1.4.31
|
||||||
org.jetbrains.kotlin:kotlin-stdlib:1.5.10
|
org.jetbrains.kotlin:kotlin-stdlib:1.5.10
|
||||||
org.jetbrains.kotlin:kotlin-stdlib:1.5.30
|
org.jetbrains.kotlin:kotlin-stdlib:1.5.30
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:1.6.21
|
||||||
org.jetbrains.kotlin:kotlin-util-io:1.3.50
|
org.jetbrains.kotlin:kotlin-util-io:1.3.50
|
||||||
org.jetbrains.kotlin:kotlin-util-io:1.4.31
|
org.jetbrains.kotlin:kotlin-util-io:1.4.31
|
||||||
org.jetbrains.kotlin:kotlin-util-klib:1.4.31
|
org.jetbrains.kotlin:kotlin-util-klib:1.4.31
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ https://dl.google.com/dl/android/maven2/androidx/constraintlayout/constraintlayo
|
|||||||
https://dl.google.com/dl/android/maven2/androidx/coordinatorlayout/coordinatorlayout/1.0.0/coordinatorlayout-1.0.0.pom
|
https://dl.google.com/dl/android/maven2/androidx/coordinatorlayout/coordinatorlayout/1.0.0/coordinatorlayout-1.0.0.pom
|
||||||
https://dl.google.com/dl/android/maven2/androidx/coordinatorlayout/coordinatorlayout/1.1.0/coordinatorlayout-1.1.0.pom
|
https://dl.google.com/dl/android/maven2/androidx/coordinatorlayout/coordinatorlayout/1.1.0/coordinatorlayout-1.1.0.pom
|
||||||
https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.6.0/core-ktx-1.6.0.pom
|
https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.6.0/core-ktx-1.6.0.pom
|
||||||
|
https://dl.google.com/dl/android/maven2/androidx/core/core-splashscreen/1.0.0/core-splashscreen-1.0.0.pom
|
||||||
https://dl.google.com/dl/android/maven2/androidx/core/core/1.0.0/core-1.0.0.pom
|
https://dl.google.com/dl/android/maven2/androidx/core/core/1.0.0/core-1.0.0.pom
|
||||||
https://dl.google.com/dl/android/maven2/androidx/core/core/1.0.1/core-1.0.1.pom
|
https://dl.google.com/dl/android/maven2/androidx/core/core/1.0.1/core-1.0.1.pom
|
||||||
https://dl.google.com/dl/android/maven2/androidx/core/core/1.1.0/core-1.1.0.pom
|
https://dl.google.com/dl/android/maven2/androidx/core/core/1.1.0/core-1.1.0.pom
|
||||||
@@ -733,6 +734,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1
|
|||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.10/kotlin-stdlib-common-1.5.10.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.10/kotlin-stdlib-common-1.5.10.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.30/kotlin-stdlib-common-1.5.30.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.30/kotlin-stdlib-common-1.5.30.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20/kotlin-stdlib-common-1.6.20.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20/kotlin-stdlib-common-1.6.20.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10/kotlin-stdlib-common-1.7.10.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10/kotlin-stdlib-common-1.7.10.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71.pom
|
||||||
@@ -763,6 +765,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.31/k
|
|||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.10/kotlin-stdlib-1.5.10.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.10/kotlin-stdlib-1.5.10.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.30/kotlin-stdlib-1.5.30.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.30/kotlin-stdlib-1.5.30.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.10/kotlin-stdlib-1.7.10.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.10/kotlin-stdlib-1.7.10.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50.pom
|
||||||
@@ -799,9 +802,9 @@ https://repo.maven.apache.org/maven2/org/ow2/asm/asm/6.0/asm-6.0.pom
|
|||||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.4/asm-9.4.pom
|
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.4/asm-9.4.pom
|
||||||
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.3/ow2-1.3.pom
|
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.3/ow2-1.3.pom
|
||||||
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5.1/ow2-1.5.1.pom
|
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5.1/ow2-1.5.1.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/2.0.6/jcl-over-slf4j-2.0.6.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/2.0.7/jcl-over-slf4j-2.0.7.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.6/slf4j-api-2.0.6.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.7/slf4j-api-2.0.7.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/2.0.6/slf4j-jdk14-2.0.6.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/2.0.7/slf4j-jdk14-2.0.7.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.6/slf4j-parent-2.0.6.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.7/slf4j-parent-2.0.7.pom
|
||||||
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
|
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
|
||||||
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
|
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
|
||||||
|
|||||||
@@ -29,17 +29,17 @@ function findPackage(line, regex) {
|
|||||||
if (line ~ "com.facebook.react:react-native") { continue }
|
if (line ~ "com.facebook.react:react-native") { continue }
|
||||||
|
|
||||||
# Example: +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50
|
# Example: +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50
|
||||||
if (findPackage(line, "--- ([^:]+):([^:]+):([^ ]+)$")) {
|
if (findPackage(line, "--- ([^ :]+):([^ :]+):([^ :]+)$")) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Example: +--- androidx.lifecycle:lifecycle-common:{strictly 2.0.0} -> 2.0.0 (c)
|
# Example: +--- androidx.lifecycle:lifecycle-common:{strictly 2.0.0} -> 2.0.0 (c)
|
||||||
if (findPackage(line, "--- ([^:]+):([^:]+):[^ ]+ -> ([^: ]+) ?(\\([*c]\\))?$")) {
|
if (findPackage(line, "--- ([^ :]+):([^ :]+):[^:]+ -> ([^ :]+) ?(\\([*c]\\))?$")) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Example: +--- com.android.support:appcompat-v7:28.0.0 -> androidx.appcompat:appcompat:1.0.2
|
# Example: +--- com.android.support:appcompat-v7:28.0.0 -> androidx.appcompat:appcompat:1.0.2
|
||||||
if (findPackage(line, "--- [^:]+:[^:]+:[^ ]+ -> ([^:]+):([^:]+):([^ ]+)$")) {
|
if (findPackage(line, "--- [^ :]+:[^ :]+:[^ ]+ -> ([^ :]+):([^ :]+):([^ :]+)$")) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ in {
|
|||||||
|
|
||||||
# Package version adjustments
|
# Package version adjustments
|
||||||
gradle = super.gradle_5;
|
gradle = super.gradle_5;
|
||||||
nodejs = super.nodejs-16_x;
|
nodejs = super.nodejs-18_x;
|
||||||
yarn = super.yarn.override { nodejs = super.nodejs-16_x; };
|
yarn = super.yarn.override { nodejs = super.nodejs-18_x; };
|
||||||
openjdk = super.openjdk8_headless;
|
openjdk = super.openjdk8_headless;
|
||||||
xcodeWrapper = callPackage ./pkgs/xcodeenv/compose-xcodewrapper.nix { } {
|
xcodeWrapper = callPackage ./pkgs/xcodeenv/compose-xcodewrapper.nix { } {
|
||||||
version = "13.3";
|
version = "13.3";
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ let
|
|||||||
# We follow the master branch of official nixpkgs.
|
# We follow the master branch of official nixpkgs.
|
||||||
nixpkgsSrc = fetchFromGitHub {
|
nixpkgsSrc = fetchFromGitHub {
|
||||||
name = "nixpkgs-source";
|
name = "nixpkgs-source";
|
||||||
owner = "NixOS";
|
owner = "status-im"; # FIXME: Fork used to get Cocoapods 1.12.0.
|
||||||
repo = "nixpkgs";
|
repo = "nixpkgs";
|
||||||
rev = "579238da5f431b7833a9f0681663900aaf0dd1e8";
|
rev = "b9b2ed705edc00003d47625950602136be3e1ed5";
|
||||||
sha256 = "sha256-cDwASlAf/h0fsHtDm9yNBHEHK0uq6do+mIUEgh1i5yg=";
|
sha256 = "sha256-F0qOawdKx7kgiGqwVikYIawL2taJ1XfcgHy0Wn0mho8=";
|
||||||
# To get the compressed Nix sha256, use:
|
# To get the compressed Nix sha256, use:
|
||||||
# nix-prefetch-url --unpack https://github.com/${ORG}/nixpkgs/archive/${REV}.tar.gz
|
# nix-prefetch-url --unpack https://github.com/${ORG}/nixpkgs/archive/${REV}.tar.gz
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ in mkShell {
|
|||||||
|
|
||||||
buildInputs = with pkgs; lib.unique ([
|
buildInputs = with pkgs; lib.unique ([
|
||||||
# core utilities that should always be present in a shell
|
# core utilities that should always be present in a shell
|
||||||
bash curl wget file unzip flock
|
bash curl wget file unzip flock procps
|
||||||
git gnumake jq ncurses gnugrep parallel
|
git gnumake jq ncurses gnugrep parallel
|
||||||
lsof # used in start-react-native.sh
|
lsof # used in start-react-native.sh
|
||||||
# build specific utilities
|
# build specific utilities
|
||||||
@@ -22,7 +22,7 @@ in mkShell {
|
|||||||
# other nice to have stuff
|
# other nice to have stuff
|
||||||
yarn nodejs python27
|
yarn nodejs python27
|
||||||
] # and some special cases
|
] # and some special cases
|
||||||
++ lib.optionals stdenv.isDarwin [ cocoapods clang ]
|
++ lib.optionals stdenv.isDarwin [ cocoapods clang tcl ]
|
||||||
++ lib.optionals (!stdenv.isDarwin) [ gcc8 ]
|
++ lib.optionals (!stdenv.isDarwin) [ gcc8 ]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -42,12 +42,19 @@ let
|
|||||||
# for running gradle by hand
|
# for running gradle by hand
|
||||||
gradle = mkShell {
|
gradle = mkShell {
|
||||||
buildInputs = with pkgs; [ gradle maven goMavenResolver ];
|
buildInputs = with pkgs; [ gradle maven goMavenResolver ];
|
||||||
inputsFrom = [ nodejs-sh ];
|
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
export STATUS_GO_ANDROID_LIBDIR="DUMMY"
|
export STATUS_GO_ANDROID_LIBDIR="DUMMY"
|
||||||
export STATUS_NIX_MAVEN_REPO="${pkgs.deps.gradle}"
|
export STATUS_NIX_MAVEN_REPO="${pkgs.deps.gradle}"
|
||||||
export ANDROID_SDK_ROOT="${pkgs.androidPkgs.sdk}"
|
export ANDROID_SDK_ROOT="${pkgs.androidPkgs.sdk}"
|
||||||
export ANDROID_NDK_ROOT="${pkgs.androidPkgs.ndk}"
|
export ANDROID_NDK_ROOT="${pkgs.androidPkgs.ndk}"
|
||||||
|
|
||||||
|
export STATUS_MOBILE_HOME=$(git rev-parse --show-toplevel)
|
||||||
|
# WARNING: Unpatched Node.js deps allow Gradle to use remote repos.
|
||||||
|
"$STATUS_MOBILE_HOME/nix/scripts/node_modules.sh" ${pkgs.deps.nodejs}
|
||||||
|
function restore_patched_modules() {
|
||||||
|
"$STATUS_MOBILE_HOME/nix/scripts/node_modules.sh" ${pkgs.deps.nodejs-patched}
|
||||||
|
}
|
||||||
|
trap restore_patched_modules EXIT
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
"@babel/preset-typescript": "^7.17.12",
|
"@babel/preset-typescript": "^7.17.12",
|
||||||
"@react-native-async-storage/async-storage": "^1.17.9",
|
"@react-native-async-storage/async-storage": "^1.17.9",
|
||||||
"@react-native-community/audio-toolkit": "git+https://github.com/tbenr/react-native-audio-toolkit.git#refs/tags/v2.0.3-status-v6",
|
"@react-native-community/audio-toolkit": "git+https://github.com/tbenr/react-native-audio-toolkit.git#refs/tags/v2.0.3-status-v6",
|
||||||
"@react-native-community/blur": "git+https://github.com/status-im/react-native-blur#refs/tags/v4.3.1-status",
|
"@react-native-community/blur": "git+https://github.com/status-im/react-native-blur#refs/tags/v4.3.2-status",
|
||||||
"@react-native-community/cameraroll": "git+https://github.com/status-im/react-native-cameraroll.git#refs/tags/v4.0.4-status.0",
|
"@react-native-community/cameraroll": "git+https://github.com/status-im/react-native-cameraroll.git#refs/tags/v4.0.4-status.0",
|
||||||
"@react-native-community/clipboard": "^1.2.2",
|
"@react-native-community/clipboard": "^1.2.2",
|
||||||
"@react-native-community/hooks": "^2.5.1",
|
"@react-native-community/hooks": "^2.5.1",
|
||||||
|
|||||||
|
After Width: | Height: | Size: 898 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 591 B |
|
After Width: | Height: | Size: 884 B |
|
After Width: | Height: | Size: 864 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 946 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 927 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 768 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 539 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
@@ -45,7 +45,13 @@
|
|||||||
:devtools {:autobuild #shadow/env ["SHADOW_AUTOBUILD_ENABLED" :default true :as :bool]}
|
:devtools {:autobuild #shadow/env ["SHADOW_AUTOBUILD_ENABLED" :default true :as :bool]}
|
||||||
:dev {:devtools {:after-load status-im2.setup.hot-reload/reload
|
:dev {:devtools {:after-load status-im2.setup.hot-reload/reload
|
||||||
:build-notify status-im2.setup.hot-reload/build-notify
|
:build-notify status-im2.setup.hot-reload/build-notify
|
||||||
:preloads [re-frisk-remote.preload]}
|
:preloads [re-frisk-remote.preload
|
||||||
|
;; In order to use component test helpers in
|
||||||
|
;; the REPL we need to preload namespaces
|
||||||
|
;; that are not normally required by
|
||||||
|
;; production code, such as
|
||||||
|
;; @testing-library/react-native.
|
||||||
|
test-helpers.component]}
|
||||||
:closure-defines
|
:closure-defines
|
||||||
{status-im2.config/POKT_TOKEN #shadow/env "POKT_TOKEN"
|
{status-im2.config/POKT_TOKEN #shadow/env "POKT_TOKEN"
|
||||||
status-im2.config/OPENSEA_API_KEY #shadow/env "OPENSEA_API_KEY"}
|
status-im2.config/OPENSEA_API_KEY #shadow/env "OPENSEA_API_KEY"}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import { useDerivedValue } from 'react-native-reanimated';
|
||||||
|
|
||||||
|
export function infoLayout(input, isTop) {
|
||||||
|
return useDerivedValue(
|
||||||
|
function () {
|
||||||
|
'worklet'
|
||||||
|
return isTop ? input.value : -input.value
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import {useAnimatedScrollHandler} from "react-native-reanimated";
|
||||||
|
|
||||||
|
export function useAnimatedScrollHandlerWorklet(scrollY) {
|
||||||
|
return useAnimatedScrollHandler((event) => {
|
||||||
|
scrollY.value = event.contentOffset.y;
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -147,7 +147,10 @@ globalThis.__STATUS_MOBILE_JS_IDENTITY_PROXY__ = new Proxy({}, {get() { return (
|
|||||||
:SvgXml #js {:render identity}
|
:SvgXml #js {:render identity}
|
||||||
:default #js {:render identity}})
|
:default #js {:render identity}})
|
||||||
(def react-native-webview #js {:default {}})
|
(def react-native-webview #js {:default {}})
|
||||||
(def react-native-audio-toolkit #js {:MediaStates {}})
|
(def react-native-audio-toolkit
|
||||||
|
#js
|
||||||
|
{:MediaStates {}
|
||||||
|
:PlaybackCategories {}})
|
||||||
(def net-info #js {})
|
(def net-info #js {})
|
||||||
(def touchid #js {})
|
(def touchid #js {})
|
||||||
(def react-native-image-viewing #js {:default {}})
|
(def react-native-image-viewing #js {:default {}})
|
||||||
@@ -352,11 +355,6 @@ globalThis.__STATUS_MOBILE_JS_IDENTITY_PROXY__ = new Proxy({}, {get() { return (
|
|||||||
(def worklet-factory
|
(def worklet-factory
|
||||||
#js {:applyAnimationsToStyle (fn [])})
|
#js {:applyAnimationsToStyle (fn [])})
|
||||||
|
|
||||||
(def shell-worklets #js {})
|
|
||||||
|
|
||||||
(def bottom-sheet #js {})
|
|
||||||
(def record-audio-worklets #js {})
|
|
||||||
|
|
||||||
;; Update i18n_resources.cljs
|
;; Update i18n_resources.cljs
|
||||||
(defn mock
|
(defn mock
|
||||||
[module]
|
[module]
|
||||||
@@ -404,10 +402,12 @@ globalThis.__STATUS_MOBILE_JS_IDENTITY_PROXY__ = new Proxy({}, {get() { return (
|
|||||||
"@react-native-async-storage/async-storage" async-storage
|
"@react-native-async-storage/async-storage" async-storage
|
||||||
"react-native-svg" react-native-svg
|
"react-native-svg" react-native-svg
|
||||||
"react-native-orientation-locker" react-native-orientation-locker
|
"react-native-orientation-locker" react-native-orientation-locker
|
||||||
"../src/js/worklet_factory.js" worklet-factory
|
"../src/js/worklets/core.js" worklet-factory
|
||||||
"../src/js/shell_worklets.js" shell-worklets
|
"../src/js/worklets/shell.js" #js {}
|
||||||
"../src/js/bottom_sheet.js" bottom-sheet
|
"../src/js/worklets/bottom_sheet.js" #js {}
|
||||||
"../src/js/record_audio_worklets.js" record-audio-worklets
|
"../src/js/worklets/record_audio.js" #js {}
|
||||||
|
"../src/js/worklets/scroll_view.js" #js {}
|
||||||
|
"../src/js/worklets/lightbox.js" #js {}
|
||||||
"./fleets.js" default-fleets
|
"./fleets.js" default-fleets
|
||||||
"@walletconnect/client" wallet-connect-client
|
"@walletconnect/client" wallet-connect-client
|
||||||
"../translations/ar.json" (js/JSON.parse (slurp "./translations/ar.json"))
|
"../translations/ar.json" (js/JSON.parse (slurp "./translations/ar.json"))
|
||||||
|
|||||||
@@ -1,138 +0,0 @@
|
|||||||
(ns quo2.components.avatars.user-avatar
|
|
||||||
(:require [clojure.string :as string]
|
|
||||||
[quo2.components.markdown.text :as text]
|
|
||||||
[quo2.foundations.colors :as colors]
|
|
||||||
[quo2.theme :refer [dark?]]
|
|
||||||
[react-native.core :as rn]
|
|
||||||
[react-native.fast-image :as fast-image]))
|
|
||||||
|
|
||||||
(def sizes
|
|
||||||
{:big {:outer 80
|
|
||||||
:inner 72
|
|
||||||
:status-indicator 20
|
|
||||||
:status-indicator-border 4
|
|
||||||
:font-size :heading-1}
|
|
||||||
:medium {:outer 48
|
|
||||||
:inner 44
|
|
||||||
:status-indicator 12
|
|
||||||
:status-indicator-border 2
|
|
||||||
:font-size :paragraph-1}
|
|
||||||
:small {:outer 32
|
|
||||||
:inner 28
|
|
||||||
:status-indicator 12
|
|
||||||
:status-indicator-border 2
|
|
||||||
:font-size :paragraph-2}
|
|
||||||
:xs {:outer 24
|
|
||||||
:inner 24
|
|
||||||
:status-indicator 0
|
|
||||||
:status-indicator-border 0
|
|
||||||
:font-size :paragraph-2}
|
|
||||||
:xxs {:outer 20
|
|
||||||
:inner 20
|
|
||||||
:status-indicator 0
|
|
||||||
:status-indicator-border 0
|
|
||||||
:font-size :label}
|
|
||||||
:xxxs {:outer 16
|
|
||||||
:inner 16
|
|
||||||
:status-indicator 0
|
|
||||||
:status-indicator-border 0
|
|
||||||
:font-size :label}})
|
|
||||||
|
|
||||||
(defn dot-indicator
|
|
||||||
[{:keys [size online? ring? dark?]}]
|
|
||||||
(let [dimensions (get-in sizes [size :status-indicator])
|
|
||||||
border-width (get-in sizes [size :status-indicator-border])
|
|
||||||
right (case size
|
|
||||||
:big 2
|
|
||||||
:medium 0
|
|
||||||
:small -2
|
|
||||||
0)
|
|
||||||
bottom (case size
|
|
||||||
:big (if ring? -1 2)
|
|
||||||
:medium (if ring? 0 -2)
|
|
||||||
:small -2
|
|
||||||
0)]
|
|
||||||
[rn/view
|
|
||||||
{:style {:background-color (if online?
|
|
||||||
colors/success-50
|
|
||||||
colors/neutral-40)
|
|
||||||
:width dimensions
|
|
||||||
:height dimensions
|
|
||||||
:border-width border-width
|
|
||||||
:border-radius dimensions
|
|
||||||
:border-color (if dark?
|
|
||||||
colors/neutral-100
|
|
||||||
colors/white)
|
|
||||||
:position :absolute
|
|
||||||
:bottom bottom
|
|
||||||
:right right}}]))
|
|
||||||
|
|
||||||
(defn initials-style
|
|
||||||
[inner-dimensions outer-dimensions]
|
|
||||||
{:position :absolute
|
|
||||||
:top (/ (- outer-dimensions inner-dimensions) 2)
|
|
||||||
:left (/ (- outer-dimensions inner-dimensions) 2)
|
|
||||||
:width inner-dimensions
|
|
||||||
:height inner-dimensions
|
|
||||||
:border-radius inner-dimensions
|
|
||||||
:justify-content :center
|
|
||||||
:align-items :center
|
|
||||||
:background-color (colors/custom-color-by-theme :turquoise 50 60)})
|
|
||||||
|
|
||||||
(defn outer-styles
|
|
||||||
[outer-dimensions]
|
|
||||||
{:width outer-dimensions
|
|
||||||
:height outer-dimensions
|
|
||||||
:border-radius outer-dimensions})
|
|
||||||
|
|
||||||
(def one-initial-letter-sizes #{:xs :xxs :xxxs})
|
|
||||||
(def valid-ring-sizes #{:big :medium :small})
|
|
||||||
|
|
||||||
(defn initials-avatar
|
|
||||||
[{:keys [full-name size inner-dimensions outer-dimensions]}]
|
|
||||||
(let [amount-initials (if (one-initial-letter-sizes size) 1 2)
|
|
||||||
initials (as-> full-name $
|
|
||||||
(string/split $ " ")
|
|
||||||
(map (comp string/upper-case first) $)
|
|
||||||
(take amount-initials $)
|
|
||||||
(string/join $))
|
|
||||||
font-size (get-in sizes [size :font-size])]
|
|
||||||
[rn/view {:style (initials-style inner-dimensions outer-dimensions)}
|
|
||||||
[text/text
|
|
||||||
{:style {:color colors/white-opa-70}
|
|
||||||
:weight :semi-bold
|
|
||||||
:size font-size}
|
|
||||||
initials]]))
|
|
||||||
|
|
||||||
(defn user-avatar
|
|
||||||
"If no `profile-picture` is given, draws the initials based on the `full-name` and
|
|
||||||
uses `ring-background` to display the ring behind the initials when given. Otherwise,
|
|
||||||
shows the profile picture which already comes with the ring drawn over it."
|
|
||||||
[{:keys [full-name status-indicator? online? size profile-picture ring-background]
|
|
||||||
:or {status-indicator? true
|
|
||||||
online? true
|
|
||||||
size :big}}]
|
|
||||||
(let [full-name (or full-name "empty name")
|
|
||||||
draw-ring? (and ring-background (valid-ring-sizes size))
|
|
||||||
outer-dimensions (get-in sizes [size :outer])
|
|
||||||
inner-dimensions (get-in sizes [size (if draw-ring? :inner :outer)])]
|
|
||||||
[rn/view
|
|
||||||
{:style (outer-styles outer-dimensions)
|
|
||||||
:accessibility-label :user-avatar}
|
|
||||||
;; The `profile-picture` already has the ring in it
|
|
||||||
(when-let [image (or profile-picture ring-background)]
|
|
||||||
[fast-image/fast-image
|
|
||||||
{:style (outer-styles outer-dimensions)
|
|
||||||
:source image}])
|
|
||||||
(when-not profile-picture
|
|
||||||
[initials-avatar
|
|
||||||
{:full-name full-name
|
|
||||||
:size size
|
|
||||||
:inner-dimensions inner-dimensions
|
|
||||||
:outer-dimensions outer-dimensions}])
|
|
||||||
(when status-indicator?
|
|
||||||
[dot-indicator
|
|
||||||
{:size size
|
|
||||||
:online? online?
|
|
||||||
:ring? draw-ring?
|
|
||||||
:dark? (dark?)}])]))
|
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
(ns quo2.components.avatars.user-avatar.component-spec
|
||||||
|
(:require [quo2.components.avatars.user-avatar.view :as user-avatar]
|
||||||
|
[test-helpers.component :as h]))
|
||||||
|
|
||||||
|
(defonce mock-picture (js/require "../resources/images/mock2/user_picture_male4.png"))
|
||||||
|
|
||||||
|
(h/describe "user avatar"
|
||||||
|
(h/test "Default render"
|
||||||
|
(h/render [user-avatar/user-avatar])
|
||||||
|
(h/is-truthy (h/get-by-label-text :user-avatar))
|
||||||
|
(h/is-truthy (h/get-by-text "EN")))
|
||||||
|
|
||||||
|
(h/describe "Profile picture"
|
||||||
|
(h/test "Renders"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar {:profile-picture mock-picture}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :profile-picture)))
|
||||||
|
|
||||||
|
(h/test "Renders even if `:full-name` is passed"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:profile-picture mock-picture
|
||||||
|
:full-name "New User1"}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :profile-picture))
|
||||||
|
(h/is-null (h/query-by-label-text :initials-avatar)))
|
||||||
|
|
||||||
|
(h/describe "Status indicator"
|
||||||
|
(h/test "Render"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:profile-picture mock-picture
|
||||||
|
:status-indicator? true}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :profile-picture))
|
||||||
|
(h/is-truthy (h/get-by-label-text :status-indicator)))
|
||||||
|
|
||||||
|
(h/test "Do not render"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:profile-picture mock-picture
|
||||||
|
:status-indicator? false}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :profile-picture))
|
||||||
|
(h/is-null (h/query-by-label-text :status-indicator)))))
|
||||||
|
|
||||||
|
(h/describe "Initials Avatar"
|
||||||
|
(h/describe "Render initials"
|
||||||
|
(letfn [(user-avatar-component [size]
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:full-name "New User"
|
||||||
|
:size size}])]
|
||||||
|
(h/describe "Two letters"
|
||||||
|
(h/test "Size :big"
|
||||||
|
(h/render (user-avatar-component :big))
|
||||||
|
(h/is-truthy (h/get-by-text "NU")))
|
||||||
|
|
||||||
|
(h/test "Size :medium"
|
||||||
|
(h/render (user-avatar-component :medium))
|
||||||
|
(h/is-truthy (h/get-by-text "NU")))
|
||||||
|
|
||||||
|
(h/test "Size :small"
|
||||||
|
(h/render (user-avatar-component :small))
|
||||||
|
(h/is-truthy (h/get-by-text "NU")))
|
||||||
|
|
||||||
|
(h/test "Two letters with excess whitespace"
|
||||||
|
(h/render [user-avatar/user-avatar
|
||||||
|
{:full-name "New User"
|
||||||
|
:size :big}])
|
||||||
|
(h/is-truthy (h/get-by-text "NU")))
|
||||||
|
|
||||||
|
(h/test "Two letters with leading whitespace"
|
||||||
|
(h/render [user-avatar/user-avatar
|
||||||
|
{:full-name " New User"
|
||||||
|
:size :big}])
|
||||||
|
(h/is-truthy (h/get-by-text "NU"))))
|
||||||
|
|
||||||
|
(h/describe "One letter"
|
||||||
|
(h/test "Size :xs"
|
||||||
|
(h/render (user-avatar-component :xs))
|
||||||
|
(h/is-truthy (h/get-by-text "N")))
|
||||||
|
|
||||||
|
(h/test "Size :xxs"
|
||||||
|
(h/render (user-avatar-component :xxs))
|
||||||
|
(h/is-truthy (h/get-by-text "N")))
|
||||||
|
|
||||||
|
(h/test "Size :xxxs"
|
||||||
|
(h/render (user-avatar-component :xxxs))
|
||||||
|
(h/is-truthy (h/get-by-text "N"))))))
|
||||||
|
|
||||||
|
(h/describe "Render ring"
|
||||||
|
(letfn [(user-avatar-component [size]
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:full-name "New User"
|
||||||
|
:ring-background mock-picture
|
||||||
|
:size size}])]
|
||||||
|
(h/describe "Passed and drawn"
|
||||||
|
(h/test "Size :big"
|
||||||
|
(h/render (user-avatar-component :big))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-truthy (h/get-by-label-text :ring-background)))
|
||||||
|
|
||||||
|
(h/test "Size :medium"
|
||||||
|
(h/render (user-avatar-component :medium))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-truthy (h/get-by-label-text :ring-background)))
|
||||||
|
|
||||||
|
(h/test "Size :small"
|
||||||
|
(h/render (user-avatar-component :small))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-truthy (h/get-by-label-text :ring-background))))
|
||||||
|
|
||||||
|
(h/describe "Passed and not drawn (because of invalid size for ring)"
|
||||||
|
(h/test "Size :xs"
|
||||||
|
(h/render (user-avatar-component :xs))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-null (h/query-by-label-text :ring-background)))
|
||||||
|
|
||||||
|
(h/test "Size :xxs"
|
||||||
|
(h/render (user-avatar-component :xxs))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-null (h/query-by-label-text :ring-background)))
|
||||||
|
|
||||||
|
(h/test "Size :xxxs"
|
||||||
|
(h/render (user-avatar-component :xxxs))
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-null (h/query-by-label-text :ring-background))))))
|
||||||
|
|
||||||
|
(h/describe "Status indicator"
|
||||||
|
(h/test "Render"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:full-name "Test User"
|
||||||
|
:status-indicator? true}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-truthy (h/get-by-label-text :status-indicator)))
|
||||||
|
|
||||||
|
(h/test "Do not render"
|
||||||
|
(h/render
|
||||||
|
[user-avatar/user-avatar
|
||||||
|
{:full-name "Test User"
|
||||||
|
:status-indicator? false}])
|
||||||
|
(h/is-truthy (h/get-by-label-text :initials-avatar))
|
||||||
|
(h/is-null (h/query-by-label-text :status-indicator))))))
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
(ns quo2.components.avatars.user-avatar.style
|
||||||
|
(:require [quo2.foundations.colors :as colors]))
|
||||||
|
|
||||||
|
(def sizes
|
||||||
|
{:big {:outer 80
|
||||||
|
:inner 72
|
||||||
|
:status-indicator 20
|
||||||
|
:status-indicator-border 4
|
||||||
|
:font-size :heading-1}
|
||||||
|
:medium {:outer 48
|
||||||
|
:inner 44
|
||||||
|
:status-indicator 12
|
||||||
|
:status-indicator-border 2
|
||||||
|
:font-size :paragraph-1}
|
||||||
|
:small {:outer 32
|
||||||
|
:inner 28
|
||||||
|
:status-indicator 12
|
||||||
|
:status-indicator-border 2
|
||||||
|
:font-size :paragraph-2}
|
||||||
|
:xs {:outer 24
|
||||||
|
:inner 24
|
||||||
|
:status-indicator 0
|
||||||
|
:status-indicator-border 0
|
||||||
|
:font-size :paragraph-2}
|
||||||
|
:xxs {:outer 20
|
||||||
|
:inner 20
|
||||||
|
:status-indicator 0
|
||||||
|
:status-indicator-border 0
|
||||||
|
:font-size :label}
|
||||||
|
:xxxs {:outer 16
|
||||||
|
:inner 16
|
||||||
|
:status-indicator 0
|
||||||
|
:status-indicator-border 0
|
||||||
|
:font-size :label}})
|
||||||
|
|
||||||
|
(defn outer
|
||||||
|
[size]
|
||||||
|
(let [dimensions (get-in sizes [size :outer])]
|
||||||
|
{:width dimensions
|
||||||
|
:height dimensions
|
||||||
|
:border-radius dimensions}))
|
||||||
|
|
||||||
|
(defn initials-avatar
|
||||||
|
[size draw-ring? customization-color]
|
||||||
|
(let [outer-dimensions (get-in sizes [size :outer])
|
||||||
|
inner-dimensions (get-in sizes [size (if draw-ring? :inner :outer)])]
|
||||||
|
{:position :absolute
|
||||||
|
:top (/ (- outer-dimensions inner-dimensions) 2)
|
||||||
|
:left (/ (- outer-dimensions inner-dimensions) 2)
|
||||||
|
:width inner-dimensions
|
||||||
|
:height inner-dimensions
|
||||||
|
:border-radius inner-dimensions
|
||||||
|
:justify-content :center
|
||||||
|
:align-items :center
|
||||||
|
:background-color (colors/custom-color-by-theme customization-color 50 60)}))
|
||||||
|
|
||||||
|
(def initials-avatar-text
|
||||||
|
{:color colors/white-opa-70})
|
||||||
|
|
||||||
|
(defn dot
|
||||||
|
[size online? ring?]
|
||||||
|
(let [background (if online? colors/success-50 colors/neutral-40)
|
||||||
|
dimensions (get-in sizes [size :status-indicator])
|
||||||
|
border-width (get-in sizes [size :status-indicator-border])
|
||||||
|
right (case size
|
||||||
|
:big 2
|
||||||
|
:medium 0
|
||||||
|
:small -2
|
||||||
|
0)
|
||||||
|
bottom (case size
|
||||||
|
:big (if ring? -1 2)
|
||||||
|
:medium (if ring? 0 -2)
|
||||||
|
:small -2
|
||||||
|
0)]
|
||||||
|
{:position :absolute
|
||||||
|
:bottom bottom
|
||||||
|
:right right
|
||||||
|
:width dimensions
|
||||||
|
:height dimensions
|
||||||
|
:border-width border-width
|
||||||
|
:border-radius dimensions
|
||||||
|
:border-color (colors/theme-colors colors/white colors/neutral-100)
|
||||||
|
:background-color background}))
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
(ns quo2.components.avatars.user-avatar.view
|
||||||
|
(:require [clojure.string :as string]
|
||||||
|
[quo2.components.avatars.user-avatar.style :as style]
|
||||||
|
[quo2.components.markdown.text :as text]
|
||||||
|
[react-native.core :as rn]
|
||||||
|
[react-native.fast-image :as fast-image]))
|
||||||
|
|
||||||
|
(defn trim-whitespace [s] (string/join " " (string/split (string/trim s) #"\s+")))
|
||||||
|
|
||||||
|
(defn- extract-initials
|
||||||
|
[full-name amount-initials]
|
||||||
|
(let [upper-case-first-letter (comp string/upper-case first)
|
||||||
|
names-list (string/split (trim-whitespace full-name) " ")]
|
||||||
|
(if (= (first names-list) "")
|
||||||
|
""
|
||||||
|
(->> names-list
|
||||||
|
(map upper-case-first-letter)
|
||||||
|
(take amount-initials)
|
||||||
|
(string/join)))))
|
||||||
|
|
||||||
|
(defn initials-avatar
|
||||||
|
[{:keys [full-name size draw-ring? customization-color]}]
|
||||||
|
(let [font-size (get-in style/sizes [size :font-size])
|
||||||
|
amount-initials (if (#{:xs :xxs :xxxs} size) 1 2)]
|
||||||
|
[rn/view
|
||||||
|
{:accessibility-label :initials-avatar
|
||||||
|
:style (style/initials-avatar size draw-ring? customization-color)}
|
||||||
|
[text/text
|
||||||
|
{:style style/initials-avatar-text
|
||||||
|
:size font-size
|
||||||
|
:weight :semi-bold}
|
||||||
|
(extract-initials full-name amount-initials)]]))
|
||||||
|
|
||||||
|
(def valid-ring-sizes #{:big :medium :small})
|
||||||
|
|
||||||
|
(defn user-avatar
|
||||||
|
"If no `profile-picture` is given, draws the initials based on the `full-name` and
|
||||||
|
uses `ring-background` to display the ring behind the initials when given. Otherwise,
|
||||||
|
shows the `profile-picture` which already comes with the ring drawn."
|
||||||
|
[{:keys [full-name status-indicator? online? size profile-picture ring-background
|
||||||
|
customization-color]
|
||||||
|
:or {status-indicator? true
|
||||||
|
online? true
|
||||||
|
size :big
|
||||||
|
customization-color :turquoise}}]
|
||||||
|
(let [full-name (or full-name "empty name")
|
||||||
|
draw-ring? (and ring-background (valid-ring-sizes size))
|
||||||
|
outer-styles (style/outer size)]
|
||||||
|
[rn/view {:style outer-styles :accessibility-label :user-avatar}
|
||||||
|
;; The `profile-picture` already has the ring in it
|
||||||
|
(when-let [image (or profile-picture ring-background)]
|
||||||
|
[fast-image/fast-image
|
||||||
|
{:accessibility-label (if draw-ring? :ring-background :profile-picture)
|
||||||
|
:style outer-styles
|
||||||
|
:source image}])
|
||||||
|
(when-not profile-picture
|
||||||
|
[initials-avatar
|
||||||
|
{:full-name full-name
|
||||||
|
:size size
|
||||||
|
:draw-ring? draw-ring?
|
||||||
|
:customization-color customization-color}])
|
||||||
|
(when status-indicator?
|
||||||
|
[rn/view
|
||||||
|
{:accessibility-label :status-indicator
|
||||||
|
:style (style/dot size online? draw-ring?)}])]))
|
||||||
@@ -6,12 +6,13 @@
|
|||||||
[react-native.core :as rn]
|
[react-native.core :as rn]
|
||||||
[reagent.core :as reagent]))
|
[reagent.core :as reagent]))
|
||||||
|
|
||||||
(def themes
|
(defn themes
|
||||||
|
[customization-color]
|
||||||
{:light {:primary {:icon-color colors/white
|
{:light {:primary {:icon-color colors/white
|
||||||
:label-color colors/white
|
:label-color colors/white
|
||||||
:background-color {:default colors/primary-50
|
:background-color {:default (colors/custom-color customization-color 50)
|
||||||
:pressed colors/primary-60
|
:pressed (colors/custom-color customization-color 60)
|
||||||
:disabled colors/primary-50}}
|
:disabled (colors/custom-color customization-color 50)}}
|
||||||
:secondary {:icon-color colors/primary-50
|
:secondary {:icon-color colors/primary-50
|
||||||
:label-color colors/primary-50
|
:label-color colors/primary-50
|
||||||
:background-color {:default colors/primary-50-opa-20
|
:background-color {:default colors/primary-50-opa-20
|
||||||
@@ -74,9 +75,9 @@
|
|||||||
:disabled colors/neutral-95}}}
|
:disabled colors/neutral-95}}}
|
||||||
:dark {:primary {:icon-color colors/white
|
:dark {:primary {:icon-color colors/white
|
||||||
:label-color colors/white
|
:label-color colors/white
|
||||||
:background-color {:default colors/primary-60
|
:background-color {:default (colors/custom-color customization-color 60)
|
||||||
:pressed colors/primary-50
|
:pressed (colors/custom-color customization-color 50)
|
||||||
:disabled colors/primary-60}}
|
:disabled (colors/custom-color customization-color 60)}}
|
||||||
:secondary {:icon-color colors/primary-50
|
:secondary {:icon-color colors/primary-50
|
||||||
:label-color colors/primary-50
|
:label-color colors/primary-50
|
||||||
:background-color {:default colors/primary-50-opa-20
|
:background-color {:default colors/primary-50-opa-20
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
[button opts \"label\"]
|
[button opts \"label\"]
|
||||||
opts
|
opts
|
||||||
{:type :primary/:secondary/:grey/:dark-grey/:outline/:ghost/
|
{:type :primary/:secondary/:grey/:dark-grey/:outline/:ghost/
|
||||||
:danger/:photo-bg/:blur-bg/:blur-bg-ouline/:shell/:community
|
:danger/:photo-bg/:blur-bg/:blur-bg-outline/:shell/:community
|
||||||
:size 40/32/24
|
:size 40/32/24
|
||||||
:icon true/false
|
:icon true/false
|
||||||
:community-color '#FFFFFF'
|
:community-color '#FFFFFF'
|
||||||
@@ -213,19 +214,20 @@
|
|||||||
:after :icon-keyword}
|
:after :icon-keyword}
|
||||||
|
|
||||||
only icon
|
only icon
|
||||||
[button {:icon true} :main-icons/close-circle]"
|
[button {:icon true} :i/close-circle]"
|
||||||
[_ _]
|
[_ _]
|
||||||
(let [pressed (reagent/atom false)]
|
(let [pressed (reagent/atom false)]
|
||||||
(fn
|
(fn
|
||||||
[{:keys [on-press disabled type size community-color community-text-color before after above
|
[{:keys [on-press disabled type size community-color community-text-color before after above
|
||||||
width
|
width customization-color
|
||||||
override-theme override-background-color
|
override-theme override-background-color
|
||||||
on-long-press accessibility-label icon icon-no-color style test-ID]
|
on-long-press accessibility-label icon icon-no-color style inner-style test-ID]
|
||||||
:or {type :primary
|
:or {type :primary
|
||||||
size 40}}
|
size 40
|
||||||
|
customization-color :primary}}
|
||||||
children]
|
children]
|
||||||
(let [{:keys [icon-color icon-secondary-color background-color label-color border-color]}
|
(let [{:keys [icon-color icon-secondary-color background-color label-color border-color]}
|
||||||
(get-in themes
|
(get-in (themes customization-color)
|
||||||
[(or
|
[(or
|
||||||
override-theme
|
override-theme
|
||||||
(theme/get-theme)) type])
|
(theme/get-theme)) type])
|
||||||
@@ -252,11 +254,7 @@
|
|||||||
[rn/view
|
[rn/view
|
||||||
{:style (merge
|
{:style (merge
|
||||||
(shape-style-container type icon size)
|
(shape-style-container type icon size)
|
||||||
{:background-color
|
{:width width}
|
||||||
(if (= state :pressed)
|
|
||||||
(colors/theme-colors colors/neutral-100 colors/white)
|
|
||||||
:transparent)
|
|
||||||
:width width}
|
|
||||||
style)}
|
style)}
|
||||||
[rn/view
|
[rn/view
|
||||||
{:style (merge
|
{:style (merge
|
||||||
@@ -275,7 +273,8 @@
|
|||||||
(community-themed? type community-color)
|
(community-themed? type community-color)
|
||||||
(merge
|
(merge
|
||||||
{:background-color community-color}
|
{:background-color community-color}
|
||||||
(when (= state :pressed) {:opacity 0.9}))))}
|
(when (= state :pressed) {:opacity 0.9})))
|
||||||
|
inner-style)}
|
||||||
(when above
|
(when above
|
||||||
[rn/view
|
[rn/view
|
||||||
[quo2.icons/icon above
|
[quo2.icons/icon above
|
||||||
|
|||||||
@@ -16,15 +16,13 @@
|
|||||||
:height 230
|
:height 230
|
||||||
:border-radius 20}
|
:border-radius 20}
|
||||||
:on-press on-press}
|
:on-press on-press}
|
||||||
[rn/view
|
[rn/view {:flex 1}
|
||||||
{:flex 1}
|
|
||||||
[rn/view (style/community-cover-container 60)
|
[rn/view (style/community-cover-container 60)
|
||||||
[rn/image
|
[rn/image
|
||||||
{:source cover
|
{:source cover
|
||||||
:style
|
:style {:flex 1
|
||||||
{:flex 1
|
:border-top-right-radius 20
|
||||||
:border-top-right-radius 20
|
:border-top-left-radius 20}}]]
|
||||||
:border-top-left-radius 20}}]]
|
|
||||||
[rn/view (style/card-view-content-container 12)
|
[rn/view (style/card-view-content-container 12)
|
||||||
[rn/view (style/card-view-chat-icon 48)
|
[rn/view (style/card-view-chat-icon 48)
|
||||||
[icon/community-icon {:images images} 48]]
|
[icon/community-icon {:images images} 48]]
|
||||||
@@ -38,7 +36,8 @@
|
|||||||
{:title name
|
{:title name
|
||||||
:description description}]
|
:description description}]
|
||||||
[rn/view {:style (style/card-stats-position)}
|
[rn/view {:style (style/card-stats-position)}
|
||||||
[community-view/community-stats-column :card-view]]
|
[community-view/community-stats-column
|
||||||
|
{:type :card-view}]]
|
||||||
[rn/view {:style (style/community-tags-position)}
|
[rn/view {:style (style/community-tags-position)}
|
||||||
[community-view/community-tags tags]]]]]]])
|
[community-view/community-tags tags]]]]]]])
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,8 @@
|
|||||||
colors/neutral-40
|
colors/neutral-40
|
||||||
colors/neutral-60))}}
|
colors/neutral-60))}}
|
||||||
name]
|
name]
|
||||||
[community-view/community-stats-column :list-view]]
|
[community-view/community-stats-column
|
||||||
|
{:type :list-view}]]
|
||||||
(if (= status :gated)
|
(if (= status :gated)
|
||||||
[community-view/permission-tag-container
|
[community-view/permission-tag-container
|
||||||
{:locked? locked?
|
{:locked? locked?
|
||||||
@@ -78,42 +79,42 @@
|
|||||||
[props
|
[props
|
||||||
{:keys [name
|
{:keys [name
|
||||||
muted?
|
muted?
|
||||||
unread-messages?
|
unviewed-messages-count
|
||||||
unread-mentions-count
|
unviewed-mentions-count
|
||||||
status
|
status
|
||||||
community-icon
|
images
|
||||||
tokens
|
tokens
|
||||||
locked?]}]
|
locked?
|
||||||
|
style]}]
|
||||||
[rn/touchable-highlight
|
[rn/touchable-highlight
|
||||||
(merge {:underlay-color (colors/theme-colors
|
(merge {:underlay-color (colors/theme-colors
|
||||||
colors/neutral-5
|
colors/neutral-5
|
||||||
colors/neutral-95)
|
colors/neutral-95)
|
||||||
:style {:border-radius 12}}
|
:style {:border-radius 12}}
|
||||||
props)
|
props)
|
||||||
[rn/view {:flex 1}
|
[rn/view (merge (style/membership-info-container) style)
|
||||||
[rn/view (style/membership-info-container)
|
[community-icon/community-icon
|
||||||
[community-icon/community-icon
|
{:images images} 32]
|
||||||
{:images community-icon} 32]
|
[rn/view
|
||||||
[rn/view
|
{:flex 1
|
||||||
{:flex 1
|
:margin-left 12
|
||||||
:margin-left 12
|
:justify-content :center}
|
||||||
:justify-content :center}
|
[text/text
|
||||||
[text/text
|
{:accessibility-label :chat-name-text
|
||||||
{:accessibility-label :chat-name-text
|
:number-of-lines 1
|
||||||
:number-of-lines 1
|
:ellipsize-mode :tail
|
||||||
:ellipsize-mode :tail
|
:weight :semi-bold
|
||||||
:weight :semi-bold
|
:size :paragraph-1}
|
||||||
:size :paragraph-1}
|
name]]
|
||||||
name]]
|
|
||||||
|
|
||||||
[rn/view
|
[rn/view
|
||||||
{:justify-content :center
|
{:justify-content :center
|
||||||
:margin-right 16}
|
:margin-right 16}
|
||||||
(if (= status :gated)
|
(if (= status :gated)
|
||||||
[community-view/permission-tag-container
|
[community-view/permission-tag-container
|
||||||
{:locked? locked?
|
{:locked? locked?
|
||||||
:tokens tokens}]
|
:tokens tokens}]
|
||||||
[notification-view
|
[notification-view
|
||||||
{:muted? muted?
|
{:muted? muted?
|
||||||
:unread-mentions-count unread-mentions-count
|
:unread-mentions-count unviewed-mentions-count
|
||||||
:unread-messages? unread-messages?}])]]]])
|
:unread-messages? (pos? unviewed-messages-count)}])]]])
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
members-count]])
|
members-count]])
|
||||||
|
|
||||||
(defn community-stats-column
|
(defn community-stats-column
|
||||||
[type]
|
[{:keys [type]}]
|
||||||
(let [icon-color (colors/theme-colors colors/neutral-50 colors/neutral-40)]
|
(let [icon-color (colors/theme-colors colors/neutral-50 colors/neutral-40)]
|
||||||
[rn/view
|
[rn/view
|
||||||
(if (= type :card-view)
|
(if (= type :card-view)
|
||||||
@@ -46,11 +46,12 @@
|
|||||||
^{:key name}
|
^{:key name}
|
||||||
[rn/view {:margin-right 8}
|
[rn/view {:margin-right 8}
|
||||||
[tag/tag
|
[tag/tag
|
||||||
{:size 24
|
{:size 24
|
||||||
:label name
|
:label name
|
||||||
:type :emoji
|
:type :emoji
|
||||||
:labelled? true
|
:labelled? true
|
||||||
:resource emoji}]])])
|
:scrollable? true
|
||||||
|
:resource emoji}]])])
|
||||||
|
|
||||||
(defn community-title
|
(defn community-title
|
||||||
[{:keys [title description size] :or {size :small}}]
|
[{:keys [title description size] :or {size :small}}]
|
||||||
|
|||||||
@@ -92,6 +92,7 @@
|
|||||||
colors/neutral-90)}
|
colors/neutral-90)}
|
||||||
{:flex-direction :row
|
{:flex-direction :row
|
||||||
:margin-horizontal 20
|
:margin-horizontal 20
|
||||||
|
:margin-vertical 8
|
||||||
:height 56
|
:height 56
|
||||||
:padding-right 12})
|
:padding-right 12})
|
||||||
[card-title-and-description title description]
|
[card-title-and-description title description]
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
:shadow-radius radius
|
:shadow-radius radius
|
||||||
:shadow-opacity 1
|
:shadow-opacity 1
|
||||||
:shadow-color colors/shadow
|
:shadow-color colors/shadow
|
||||||
|
:elevation 1
|
||||||
:border-radius radius
|
:border-radius radius
|
||||||
:justify-content :space-between
|
:justify-content :space-between
|
||||||
:elevation 2
|
|
||||||
:background-color (colors/theme-colors
|
:background-color (colors/theme-colors
|
||||||
colors/white
|
colors/white
|
||||||
colors/neutral-90)})
|
colors/neutral-90)})
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
:bottom 0
|
:bottom 0
|
||||||
:left 0
|
:left 0
|
||||||
:right 0
|
:right 0
|
||||||
:height 20
|
:border-radius 20
|
||||||
:padding-horizontal padding-horizontal
|
:padding-horizontal padding-horizontal
|
||||||
:border-top-right-radius 16
|
:border-top-right-radius 16
|
||||||
:border-top-left-radius 16
|
:border-top-left-radius 16
|
||||||
|
|||||||
@@ -1,34 +1,29 @@
|
|||||||
(ns quo2.components.counter.--tests--.counter-component-spec
|
(ns quo2.components.counter.--tests--.counter-component-spec
|
||||||
(:require ["@testing-library/react-native" :as rtl]
|
(:require [quo2.components.counter.counter :as counter]
|
||||||
[quo2.components.counter.counter :as counter]
|
[test-helpers.component :as h]))
|
||||||
[reagent.core :as reagent]))
|
|
||||||
|
|
||||||
(defn render-counter
|
(h/describe "counter component"
|
||||||
([]
|
(h/test "default render of counter component"
|
||||||
(render-counter {} nil))
|
(h/render [counter/counter {} nil])
|
||||||
([opts value]
|
(-> (h/expect (h/get-by-test-id :counter-component))
|
||||||
(rtl/render (reagent/as-element [counter/counter opts value]))))
|
(h/is-truthy)))
|
||||||
|
|
||||||
(js/global.test "default render of counter component"
|
(h/test "renders counter with a string value"
|
||||||
(fn []
|
(h/render [counter/counter {} "1"])
|
||||||
(render-counter)
|
(-> (h/expect (h/get-by-text "1"))
|
||||||
(-> (js/expect (rtl/screen.getByTestId "counter-component"))
|
(h/is-truthy)))
|
||||||
(.toBeTruthy))))
|
|
||||||
|
|
||||||
(js/global.test "renders counter with a string value"
|
(h/test "renders counter with an integer value"
|
||||||
(fn []
|
(h/render [counter/counter {} 1])
|
||||||
(render-counter {} "1")
|
(-> (h/expect (h/get-by-text "1"))
|
||||||
(-> (js/expect (rtl/screen.getByText "1"))
|
(h/is-truthy)))
|
||||||
(.toBeTruthy))))
|
|
||||||
|
|
||||||
(js/global.test "renders counter with an integer value"
|
(h/test "renders counter with max value 99+ by default"
|
||||||
(fn []
|
(h/render [counter/counter {} 100])
|
||||||
(render-counter {} 1)
|
(-> (h/expect (h/get-by-text "99+"))
|
||||||
(-> (js/expect (rtl/screen.getByText "1"))
|
(h/is-truthy)))
|
||||||
(.toBeTruthy))))
|
|
||||||
|
|
||||||
(js/global.test "renders counter with value 99+ when the value is greater than 99"
|
(h/test "renders counter with custom max value when set to 150"
|
||||||
(fn []
|
(h/render [counter/counter {:max-value 150} 151])
|
||||||
(render-counter {} "100")
|
(-> (h/expect (h/get-by-text "150+"))
|
||||||
(-> (js/expect (rtl/screen.getByText "99+"))
|
(h/is-truthy))))
|
||||||
(.toBeTruthy))))
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
(ns quo2.components.counter.counter
|
(ns quo2.components.counter.counter
|
||||||
(:require [quo2.components.markdown.text :as text]
|
(:require
|
||||||
[quo2.foundations.colors :as colors]
|
[quo2.components.markdown.text :as text]
|
||||||
[quo2.theme :as theme]
|
[quo2.foundations.colors :as colors]
|
||||||
[react-native.core :as rn]))
|
[quo2.theme :as theme]
|
||||||
|
[react-native.core :as rn]
|
||||||
|
[utils.number :as utils-number]))
|
||||||
|
|
||||||
(def themes
|
(def themes
|
||||||
{:light {:default colors/primary-50
|
{:light {:default colors/primary-50
|
||||||
@@ -19,9 +21,9 @@
|
|||||||
(get-in themes [(theme/get-theme) key]))
|
(get-in themes [(theme/get-theme) key]))
|
||||||
|
|
||||||
(defn counter
|
(defn counter
|
||||||
"type: default, secondary, grey, outline
|
[{:keys [type override-text-color override-bg-color style accessibility-label max-value]
|
||||||
value: integer"
|
:or {max-value 99}}
|
||||||
[{:keys [type override-text-color override-bg-color style accessibility-label]} value]
|
value]
|
||||||
(let [type (or type :default)
|
(let [type (or type :default)
|
||||||
text-color (or override-text-color
|
text-color (or override-text-color
|
||||||
(if (or
|
(if (or
|
||||||
@@ -29,11 +31,9 @@
|
|||||||
(= type :default))
|
(= type :default))
|
||||||
colors/white
|
colors/white
|
||||||
colors/neutral-100))
|
colors/neutral-100))
|
||||||
value (if (integer? value)
|
value (utils-number/parse-int value)
|
||||||
value
|
label (if (> value max-value)
|
||||||
(js/parseInt value))
|
(str max-value "+")
|
||||||
label (if (> value 99)
|
|
||||||
"99+"
|
|
||||||
(str value))
|
(str value))
|
||||||
width (case (count label)
|
width (case (count label)
|
||||||
1 16
|
1 16
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
(or override-bg-color
|
(or override-bg-color
|
||||||
(get-color type)))
|
(get-color type)))
|
||||||
|
|
||||||
(> value 99)
|
(> value max-value)
|
||||||
(assoc :padding-left 0.5))}
|
(assoc :padding-left 0.5))}
|
||||||
[text/text
|
[text/text
|
||||||
{:weight :medium
|
{:weight :medium
|
||||||
|
|||||||