Skip to content

Commit

Permalink
Merge pull request #8 from coingrig/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
florindumitru authored Jan 4, 2022
2 parents b4d1644 + 986f1e0 commit 8fe3a8e
Show file tree
Hide file tree
Showing 72 changed files with 1,844 additions and 653 deletions.
2 changes: 2 additions & 0 deletions App.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import {Platform, StatusBar} from 'react-native';
import {NavigationContainer} from '@react-navigation/native';
// eslint-disable-next-line no-unused-vars
import AppsStateService from './src/services/appStates';
// eslint-disable-next-line no-unused-vars
import DeepLinkService from './src/services/deeplink';
import {MenuProvider} from 'react-native-popup-menu';
import {NavigationScreens} from './src/routes';
import {SafeAreaProvider} from 'react-native-safe-area-context';
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ This library has adopted a Code of Conduct that we expect project participants t

## License

The Coingrig Core Library is licensed under the [License](LICENSE).
The Coingrig Wallet is licensed under the [License](LICENSE).



Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ android {
applicationId "com.coingrig"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 33
versionName "1.3.1"
versionCode 40
versionName "1.3.3"
missingDimensionStrategy 'react-native-camera', 'general'

}
Expand Down
58 changes: 31 additions & 27 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coingrig">

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

<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.coingrig">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher" android:allowBackup="false" android:theme="@style/AppTheme">
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" android:host="link.coingrig.com" />
</intent-filter>
<intent-filter>
<data android:scheme="wc" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<intent-filter>
<data android:scheme="coingrig" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
</application>
</manifest>
13 changes: 13 additions & 0 deletions android/app/src/main/java/com/coingrig/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.coingrig;

import android.os.Bundle;
import android.view.WindowManager;

import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
Expand All @@ -13,6 +14,18 @@ protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}

@Override
protected void onPause() {
super.onPause();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
}

@Override
protected void onResume() {
super.onResume();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}

/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
Expand Down
24 changes: 16 additions & 8 deletions ios/Coingrig.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
4E5404AF26CD83330055EE3E /* RobotoSlab-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E5404A626CD83330055EE3E /* RobotoSlab-Thin.ttf */; };
5BBFAFBAD85CB9128AC703B4 /* libPods-Coingrig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 87AEA7FC882C6B7889BFB6C8 /* libPods-Coingrig.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
A60153BE27730D61000A5391 /* lock.xib in Resources */ = {isa = PBXBuildFile; fileRef = A60153BD27730D61000A5391 /* lock.xib */; };
A67F9FDA26E782FA00CC9AD1 /* test.swift in Sources */ = {isa = PBXBuildFile; fileRef = A67F9FD926E782FA00CC9AD1 /* test.swift */; };
B74FE546EF460F39C063FDB6 /* libPods-Coingrig-CoingrigTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 233248F8EBC736D4AA067C7D /* libPods-Coingrig-CoingrigTests.a */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -53,6 +54,7 @@
25277035794F4D3792CC654C /* RobotoSlab-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "RobotoSlab-Medium.ttf"; path = "../src/assets/fonts/RobotoSlab-Medium.ttf"; sourceTree = "<group>"; };
2A03A6603E1A4889A6FCB33A /* RobotoSlab-ExtraBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "RobotoSlab-ExtraBold.ttf"; path = "../src/assets/fonts/RobotoSlab-ExtraBold.ttf"; sourceTree = "<group>"; };
3C2D2CB1FE3D42C89FC8726A /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
4E17F4CD277C53C800CDEF30 /* Coingrig.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Coingrig.entitlements; path = Coingrig/Coingrig.entitlements; sourceTree = "<group>"; };
4E54049E26CD83320055EE3E /* RobotoSlab-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "RobotoSlab-Bold.ttf"; path = "../src/assets/fonts/RobotoSlab-Bold.ttf"; sourceTree = "<group>"; };
4E54049F26CD83320055EE3E /* RobotoSlab-ExtraLight.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "RobotoSlab-ExtraLight.ttf"; path = "../src/assets/fonts/RobotoSlab-ExtraLight.ttf"; sourceTree = "<group>"; };
4E5404A026CD83320055EE3E /* RobotoSlab-ExtraBold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "RobotoSlab-ExtraBold.ttf"; path = "../src/assets/fonts/RobotoSlab-ExtraBold.ttf"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -92,6 +94,7 @@
9A2B60DAAC424A81AC7403D4 /* RobotoSlab-SemiBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "RobotoSlab-SemiBold.ttf"; path = "../src/assets/fonts/RobotoSlab-SemiBold.ttf"; sourceTree = "<group>"; };
A05B5316E83D7F83AC804D7B /* Pods-Coingrig.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coingrig.debug.xcconfig"; path = "Target Support Files/Pods-Coingrig/Pods-Coingrig.debug.xcconfig"; sourceTree = "<group>"; };
A253347E5B3640B98626F5E3 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
A60153BD27730D61000A5391 /* lock.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = lock.xib; sourceTree = "<group>"; };
A67F9FD626E7829D00CC9AD1 /* liblottie-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "liblottie-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
A67F9FD826E782FA00CC9AD1 /* Coingrig-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Coingrig-Bridging-Header.h"; sourceTree = "<group>"; };
A67F9FD926E782FA00CC9AD1 /* test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = test.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -149,12 +152,14 @@
13B07FAE1A68108700A75B9A /* Coingrig */ = {
isa = PBXGroup;
children = (
4E17F4CD277C53C800CDEF30 /* Coingrig.entitlements */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.m */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
A60153BD27730D61000A5391 /* lock.xib */,
);
name = Coingrig;
sourceTree = "<group>";
Expand Down Expand Up @@ -381,6 +386,7 @@
4E5404A826CD83330055EE3E /* RobotoSlab-ExtraLight.ttf in Resources */,
4E5404A926CD83330055EE3E /* RobotoSlab-ExtraBold.ttf in Resources */,
4E5404AA26CD83330055EE3E /* RobotoSlab-Light.ttf in Resources */,
A60153BE27730D61000A5391 /* lock.xib in Resources */,
4E5404AB26CD83330055EE3E /* RobotoSlab-Medium.ttf in Resources */,
4E5404AC26CD83330055EE3E /* RobotoSlab-SemiBold.ttf in Resources */,
4E5404AD26CD83330055EE3E /* RobotoSlab-Regular.ttf in Resources */,
Expand Down Expand Up @@ -628,9 +634,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 33;
CODE_SIGN_ENTITLEMENTS = Coingrig/Coingrig.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 40;
DEVELOPMENT_TEAM = L63HFFVTBZ;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
Expand Down Expand Up @@ -707,15 +714,15 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.3.1;
MARKETING_VERSION = 1.3.3;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = com.coingrig.app;
PRODUCT_NAME = Coingrig;
PROVISIONING_PROFILE_SPECIFIER = "coingrig dist";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Coingrig-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
Expand All @@ -729,9 +736,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_ENTITLEMENTS = Coingrig/Coingrig.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution: Qubevo Sourcing SRL (L63HFFVTBZ)";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 33;
CURRENT_PROJECT_VERSION = 40;
DEVELOPMENT_TEAM = L63HFFVTBZ;
"HEADER_SEARCH_PATHS[arch=*]" = (
"$(inherited)",
Expand Down Expand Up @@ -807,7 +815,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.3.1;
MARKETING_VERSION = 1.3.3;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand Down
2 changes: 2 additions & 0 deletions ios/Coingrig/AppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@

@property (nonatomic, strong) UIWindow *window;

@property (nonatomic, strong) UIView *appSwitcherView;

@end
36 changes: 34 additions & 2 deletions ios/Coingrig/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import "RNSplashScreen.h" // here
#import <React/RCTLinkingManager.h>

#ifdef FB_SONARKIT_ENABLED
#import <FlipperKit/FlipperClient.h>
Expand Down Expand Up @@ -42,16 +43,31 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
} else {
rootView.backgroundColor = [UIColor whiteColor];
}

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
[RNSplashScreen show]; // here
[RNSplashScreen show];
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
_appSwitcherView = [[[NSBundle mainBundle] loadNibNamed:@"lock" owner:self options:nil] objectAtIndex:0];
CGRect frame = [self window].frame;
frame.origin = CGPointMake(0, 0);
_appSwitcherView.frame = frame;
[[self window ] addSubview: [self appSwitcherView]];

}


- (void)applicationDidBecomeActive:(UIApplication *)application {
[_appSwitcherView removeFromSuperview];
}


- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
Expand All @@ -61,4 +77,20 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
#endif
}

- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}

// Add this above `@end`:
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
return [RCTLinkingManager application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
}

@end
10 changes: 10 additions & 0 deletions ios/Coingrig/Coingrig.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:link.coingrig.com</string>
</array>
</dict>
</plist>
13 changes: 13 additions & 0 deletions ios/Coingrig/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,19 @@
<string>$(MARKETING_VERSION)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string></string>
<key>CFBundleURLSchemes</key>
<array>
<string>coingrig</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
Expand Down
16 changes: 11 additions & 5 deletions ios/Coingrig/LaunchScreen.storyboard
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<device id="retina6_1" orientation="portrait" appearance="dark"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
Expand All @@ -17,16 +18,18 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="playstore" translatesAutoresizingMaskIntoConstraints="NO" id="Ooz-6l-ZbW">
<rect key="frame" x="96" y="356" width="222" height="184"/>
<rect key="frame" x="142" y="383" width="130" height="130"/>
<constraints>
<constraint firstAttribute="width" constant="130" id="Ueg-Yd-PXw"/>
<constraint firstAttribute="height" constant="130" id="tLg-mv-UND"/>
</constraints>
<preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="default"/>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="Ooz-6l-ZbW" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="UIZ-gN-cfb"/>
<constraint firstItem="Ooz-6l-ZbW" firstAttribute="top" secondItem="Bcu-3y-fUS" secondAttribute="top" constant="312" id="foT-sS-AfP"/>
<constraint firstItem="Ooz-6l-ZbW" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="96" id="hIZ-Mi-hlh"/>
<constraint firstItem="Ooz-6l-ZbW" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="jRz-8z-Gfa"/>
</constraints>
</view>
Expand All @@ -38,5 +41,8 @@
</scenes>
<resources>
<image name="playstore" width="512" height="512"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>
6 changes: 6 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,8 @@ PODS:
- React-Core
- RNKeychain (8.0.0):
- React-Core
- RNLocalize (2.1.6):
- React-Core
- RNOS (1.2.6):
- React
- RNPermissions (3.0.5):
Expand Down Expand Up @@ -490,6 +492,7 @@ DEPENDENCIES:
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNInAppBrowser (from `../node_modules/react-native-inappbrowser-reborn`)
- RNKeychain (from `../node_modules/react-native-keychain`)
- RNLocalize (from `../node_modules/react-native-localize`)
- RNOS (from `../node_modules/react-native-os`)
- RNPermissions (from `../node_modules/react-native-permissions`)
- RNReanimated (from `../node_modules/react-native-reanimated`)
Expand Down Expand Up @@ -608,6 +611,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-inappbrowser-reborn"
RNKeychain:
:path: "../node_modules/react-native-keychain"
RNLocalize:
:path: "../node_modules/react-native-localize"
RNOS:
:path: "../node_modules/react-native-os"
RNPermissions:
Expand Down Expand Up @@ -686,6 +691,7 @@ SPEC CHECKSUMS:
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
RNInAppBrowser: 3ff3a3b8f458aaf25aaee879d057352862edf357
RNKeychain: 4f63aada75ebafd26f4bc2c670199461eab85d94
RNLocalize: f10d91c76a5692d4cf6f218c70f6e4d7dcb42d1c
RNOS: 6f2f9a70895bbbfbdad7196abd952e7b01d45027
RNPermissions: 7043bacbf928eae25808275cfe73799b8f618911
RNReanimated: 64f6c5789f82818c07ba3c71864b73619cb23c76
Expand Down
Loading

0 comments on commit 8fe3a8e

Please sign in to comment.