Send logs on shaking device
This commit is contained in:
parent
ee127722ce
commit
b0be9ee976
|
@ -217,7 +217,7 @@ android {
|
||||||
initWith release
|
initWith release
|
||||||
applicationIdSuffix ".pr"
|
applicationIdSuffix ".pr"
|
||||||
versionNameSuffix ".pr"
|
versionNameSuffix ".pr"
|
||||||
debuggable true
|
debuggable false
|
||||||
matchingFallbacks = ["release"]
|
matchingFallbacks = ["release"]
|
||||||
// necessary to make react-native-config's code generation work
|
// necessary to make react-native-config's code generation work
|
||||||
resValue "string", "build_config_package", "im.status.ethereum"
|
resValue "string", "build_config_package", "im.status.ethereum"
|
||||||
|
@ -276,6 +276,7 @@ dependencies {
|
||||||
implementation project(':react-native-webview')
|
implementation project(':react-native-webview')
|
||||||
implementation project(':react-native-config')
|
implementation project(':react-native-config')
|
||||||
implementation project(':react-native-firebase')
|
implementation project(':react-native-firebase')
|
||||||
|
implementation project(':react-native-shake')
|
||||||
implementation project(':RNMail')
|
implementation project(':RNMail')
|
||||||
compile ('com.google.android.gms:play-services-base:16.0.1') {
|
compile ('com.google.android.gms:play-services-base:16.0.1') {
|
||||||
force = true
|
force = true
|
||||||
|
|
|
@ -36,6 +36,7 @@ import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;
|
||||||
import io.realm.react.RealmReactPackage;
|
import io.realm.react.RealmReactPackage;
|
||||||
import me.alwx.HttpServer.HttpServerReactPackage;
|
import me.alwx.HttpServer.HttpServerReactPackage;
|
||||||
import com.chirag.RNMail.*;
|
import com.chirag.RNMail.*;
|
||||||
|
import com.clipsub.RNShake.RNShakeEventPackage;
|
||||||
|
|
||||||
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
||||||
|
|
||||||
|
@ -72,7 +73,8 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
|
||||||
new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1", callRPC),
|
new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1", callRPC),
|
||||||
new RNCWebViewPackage(),
|
new RNCWebViewPackage(),
|
||||||
new ReactNativeConfigPackage(),
|
new ReactNativeConfigPackage(),
|
||||||
new KeychainPackage());
|
new KeychainPackage(),
|
||||||
|
new RNShakeEventPackage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -44,3 +44,5 @@ include ':react-native-android'
|
||||||
project(':react-native-android').projectDir = new File(rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
|
project(':react-native-android').projectDir = new File(rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
|
||||||
include ':RNMail', ':app'
|
include ':RNMail', ':app'
|
||||||
project(':RNMail').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mail/android')
|
project(':RNMail').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mail/android')
|
||||||
|
include ':react-native-shake'
|
||||||
|
project(':react-native-shake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-shake/android')
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
"js-sha3"
|
"js-sha3"
|
||||||
"react-navigation"
|
"react-navigation"
|
||||||
"hi-base32"
|
"hi-base32"
|
||||||
"react-native-mail"]
|
"react-native-mail"
|
||||||
|
"react-native-shake"]
|
||||||
|
|
||||||
;; Desktop modules
|
;; Desktop modules
|
||||||
:desktop-modules ["realm"
|
:desktop-modules ["realm"
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
42B30EAD0EED4C72BB96D1AB /* Inter-ExtraBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6B145D55D500476BB45C2232 /* Inter-ExtraBold.otf */; };
|
42B30EAD0EED4C72BB96D1AB /* Inter-ExtraBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6B145D55D500476BB45C2232 /* Inter-ExtraBold.otf */; };
|
||||||
475D202F20B7450D00879A77 /* libRNFirebase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 475D1FC020B7413500879A77 /* libRNFirebase.a */; };
|
475D202F20B7450D00879A77 /* libRNFirebase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 475D1FC020B7413500879A77 /* libRNFirebase.a */; };
|
||||||
4C16DE0C1F89508700AA10DB /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */; };
|
4C16DE0C1F89508700AA10DB /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */; };
|
||||||
|
4C5F69C322815E6A00D26222 /* libRNShakeEvent.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C5F69BE22815E4F00D26222 /* libRNShakeEvent.a */; };
|
||||||
4C9FBC56227C85640024181F /* libRNMail.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C9FBC50227C85250024181F /* libRNMail.a */; };
|
4C9FBC56227C85640024181F /* libRNMail.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C9FBC50227C85250024181F /* libRNMail.a */; };
|
||||||
54BD2CE922134B6291FE1BFD /* Inter-Light-BETA.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6864A92FD6844B928C52F5C1 /* Inter-Light-BETA.otf */; };
|
54BD2CE922134B6291FE1BFD /* Inter-Light-BETA.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6864A92FD6844B928C52F5C1 /* Inter-Light-BETA.otf */; };
|
||||||
57C854A7993C47A3B1AECD32 /* Inter-MediumItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */; };
|
57C854A7993C47A3B1AECD32 /* Inter-MediumItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */; };
|
||||||
|
@ -188,6 +189,13 @@
|
||||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||||
remoteInfo = RNFirebase;
|
remoteInfo = RNFirebase;
|
||||||
};
|
};
|
||||||
|
4C5F69BD22815E4F00D26222 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 4C5F698522815E4E00D26222 /* RNShakeEvent.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||||
|
remoteInfo = RNShakeEvent;
|
||||||
|
};
|
||||||
4C9FBC4F227C85250024181F /* PBXContainerItemProxy */ = {
|
4C9FBC4F227C85250024181F /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = 4C9FBC19227C85250024181F /* RNMail.xcodeproj */;
|
containerPortal = 4C9FBC19227C85250024181F /* RNMail.xcodeproj */;
|
||||||
|
@ -556,6 +564,7 @@
|
||||||
475D1FCD20B7415300879A77 /* libFirebaseCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseCore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
475D1FCD20B7415300879A77 /* libFirebaseCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseCore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
475D1FCE20B7415300879A77 /* libFirebaseMessaging.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseMessaging.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
475D1FCE20B7415300879A77 /* libFirebaseMessaging.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseMessaging.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||||
|
4C5F698522815E4E00D26222 /* RNShakeEvent.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNShakeEvent.xcodeproj; path = "../node_modules/react-native-shake/ios/RNShakeEvent.xcodeproj"; sourceTree = "<group>"; };
|
||||||
4C9FBC19227C85250024181F /* RNMail.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNMail.xcodeproj; path = "../node_modules/react-native-mail/RNMail.xcodeproj"; sourceTree = "<group>"; };
|
4C9FBC19227C85250024181F /* RNMail.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNMail.xcodeproj; path = "../node_modules/react-native-mail/RNMail.xcodeproj"; sourceTree = "<group>"; };
|
||||||
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||||
5535217F57E44D77AA9CF083 /* libRCTOrientation.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTOrientation.a; sourceTree = "<group>"; };
|
5535217F57E44D77AA9CF083 /* libRCTOrientation.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTOrientation.a; sourceTree = "<group>"; };
|
||||||
|
@ -629,6 +638,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
4C5F69C322815E6A00D26222 /* libRNShakeEvent.a in Frameworks */,
|
||||||
ABC194E5221009A800EB06E6 /* libRNLanguages.a in Frameworks */,
|
ABC194E5221009A800EB06E6 /* libRNLanguages.a in Frameworks */,
|
||||||
475D202F20B7450D00879A77 /* libRNFirebase.a in Frameworks */,
|
475D202F20B7450D00879A77 /* libRNFirebase.a in Frameworks */,
|
||||||
4C9FBC56227C85640024181F /* libRNMail.a in Frameworks */,
|
4C9FBC56227C85640024181F /* libRNMail.a in Frameworks */,
|
||||||
|
@ -891,6 +901,14 @@
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4C5F698622815E4E00D26222 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C5F69BE22815E4F00D26222 /* libRNShakeEvent.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4C9FBC1A227C85250024181F /* Products */ = {
|
4C9FBC1A227C85250024181F /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
@ -922,6 +940,7 @@
|
||||||
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4C5F698522815E4E00D26222 /* RNShakeEvent.xcodeproj */,
|
||||||
4C9FBC19227C85250024181F /* RNMail.xcodeproj */,
|
4C9FBC19227C85250024181F /* RNMail.xcodeproj */,
|
||||||
ABC194DC2210099B00EB06E6 /* RNLanguages.xcodeproj */,
|
ABC194DC2210099B00EB06E6 /* RNLanguages.xcodeproj */,
|
||||||
B461988B2210C98F00603CF2 /* RNCWebView.xcodeproj */,
|
B461988B2210C98F00603CF2 /* RNCWebView.xcodeproj */,
|
||||||
|
@ -1324,6 +1343,10 @@
|
||||||
ProductGroup = 475D1EEE20B73EE000879A77 /* Products */;
|
ProductGroup = 475D1EEE20B73EE000879A77 /* Products */;
|
||||||
ProjectRef = AF409BB755B94FB1BBA01927 /* RNSecureRandom.xcodeproj */;
|
ProjectRef = AF409BB755B94FB1BBA01927 /* RNSecureRandom.xcodeproj */;
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ProductGroup = 4C5F698622815E4E00D26222 /* Products */;
|
||||||
|
ProjectRef = 4C5F698522815E4E00D26222 /* RNShakeEvent.xcodeproj */;
|
||||||
|
},
|
||||||
{
|
{
|
||||||
ProductGroup = 92925B361F571DE600203EEB /* Products */;
|
ProductGroup = 92925B361F571DE600203EEB /* Products */;
|
||||||
ProjectRef = 1E74DC52A1E449A2BA858B14 /* RNSVG.xcodeproj */;
|
ProjectRef = 1E74DC52A1E449A2BA858B14 /* RNSVG.xcodeproj */;
|
||||||
|
@ -1451,6 +1474,13 @@
|
||||||
remoteRef = 475D1FBF20B7413500879A77 /* PBXContainerItemProxy */;
|
remoteRef = 475D1FBF20B7413500879A77 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
|
4C5F69BE22815E4F00D26222 /* libRNShakeEvent.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libRNShakeEvent.a;
|
||||||
|
remoteRef = 4C5F69BD22815E4F00D26222 /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
4C9FBC50227C85250024181F /* libRNMail.a */ = {
|
4C9FBC50227C85250024181F /* libRNMail.a */ = {
|
||||||
isa = PBXReferenceProxy;
|
isa = PBXReferenceProxy;
|
||||||
fileType = archive.ar;
|
fileType = archive.ar;
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
"react-native-randombytes": "3.5.0",
|
"react-native-randombytes": "3.5.0",
|
||||||
"react-native-safe-area-view": "0.9.0",
|
"react-native-safe-area-view": "0.9.0",
|
||||||
"react-native-securerandom": "git+https://github.com/status-im/react-native-securerandom.git#0.1.1-2",
|
"react-native-securerandom": "git+https://github.com/status-im/react-native-securerandom.git#0.1.1-2",
|
||||||
|
"react-native-shake": "^3.3.1",
|
||||||
"react-native-splash-screen": "3.1.1",
|
"react-native-splash-screen": "3.1.1",
|
||||||
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#v2.5.4",
|
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#v2.5.4",
|
||||||
"react-native-svg": "^9.2.4",
|
"react-native-svg": "^9.2.4",
|
||||||
|
|
|
@ -3526,7 +3526,7 @@ invariant@2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.0.0"
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
invariant@^2.2.2, invariant@^2.2.4:
|
invariant@^2.2.2, invariant@^2.2.4, invariant@^2.2.x:
|
||||||
version "2.2.4"
|
version "2.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
||||||
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
||||||
|
@ -5581,6 +5581,13 @@ react-native-scrollable-mixin@^1.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js "*"
|
base64-js "*"
|
||||||
|
|
||||||
|
react-native-shake@^3.3.1:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-shake/-/react-native-shake-3.3.1.tgz#e168827015db0cfb316f2bd428afe95f225fda6a"
|
||||||
|
integrity sha512-Z5W/tC3rsOcQmAOxe/uHsGNrXyZx3xwd1bFaRw0pbO0lhG4Z1g2MOcrO/Pa+ZA59ap/1tmwVP6/+IPtt6DPT1w==
|
||||||
|
dependencies:
|
||||||
|
invariant "^2.2.x"
|
||||||
|
|
||||||
react-native-splash-screen@3.1.1:
|
react-native-splash-screen@3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.1.1.tgz#1a4e46c9fdce53ff52af2a2cb4181788c4e30b30"
|
resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.1.1.tgz#1a4e46c9fdce53ff52af2a2cb4181788c4e30b30"
|
||||||
|
|
|
@ -33,4 +33,5 @@
|
||||||
(def snoopy-buffer #js {})
|
(def snoopy-buffer #js {})
|
||||||
(def background-timer #js {:setTimeout (fn [cb ms] (js/setTimeout cb ms))})
|
(def background-timer #js {:setTimeout (fn [cb ms] (js/setTimeout cb ms))})
|
||||||
(def react-navigation (js/require "react-navigation"))
|
(def react-navigation (js/require "react-navigation"))
|
||||||
|
(def react-native-shake #js {})
|
||||||
(def react-native-mail #js {:mail (fn [])})
|
(def react-native-mail #js {:mail (fn [])})
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
(def snoopy-buffer (js/require "rn-snoopy/stream/buffer"))
|
(def snoopy-buffer (js/require "rn-snoopy/stream/buffer"))
|
||||||
(def background-timer (.-default (js/require "react-native-background-timer")))
|
(def background-timer (.-default (js/require "react-native-background-timer")))
|
||||||
(def react-navigation (js/require "react-navigation"))
|
(def react-navigation (js/require "react-navigation"))
|
||||||
|
(def react-native-shake (js/require "react-native-shake"))
|
||||||
(def react-native-mail (.-default (js/require "react-native-mail")))
|
(def react-native-mail (.-default (js/require "react-native-mail")))
|
||||||
(def desktop-linking #js {:addEventListener (fn [])})
|
(def desktop-linking #js {:addEventListener (fn [])})
|
||||||
(def desktop-menu #js {:addEventListener (fn [])})
|
(def desktop-menu #js {:addEventListener (fn [])})
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
(defn on-languages-change [event]
|
(defn on-languages-change [event]
|
||||||
(set! (.-locale rn-dependencies/i18n) (.-language event)))
|
(set! (.-locale rn-dependencies/i18n) (.-language event)))
|
||||||
|
|
||||||
|
(defn on-shake []
|
||||||
|
(dispatch [:shake-event]))
|
||||||
|
|
||||||
(defn app-root [props]
|
(defn app-root [props]
|
||||||
(let [keyboard-height (subscribe [:keyboard-height])]
|
(let [keyboard-height (subscribe [:keyboard-height])]
|
||||||
(reagent/create-class
|
(reagent/create-class
|
||||||
|
@ -42,7 +45,10 @@
|
||||||
(dispatch [:set :keyboard-height 0]))))
|
(dispatch [:set :keyboard-height 0]))))
|
||||||
(.hide react/splash-screen)
|
(.hide react/splash-screen)
|
||||||
(.addEventListener react/app-state "change" app-state-change-handler)
|
(.addEventListener react/app-state "change" app-state-change-handler)
|
||||||
(.addEventListener rn-dependencies/react-native-languages "change" on-languages-change))
|
(.addEventListener rn-dependencies/react-native-languages "change" on-languages-change)
|
||||||
|
(.addEventListener rn-dependencies/react-native-shake
|
||||||
|
"ShakeEvent"
|
||||||
|
on-shake))
|
||||||
:component-did-mount
|
:component-did-mount
|
||||||
(fn [this]
|
(fn [this]
|
||||||
(dispatch [:set-initial-props (reagent/props this)]))
|
(dispatch [:set-initial-props (reagent/props this)]))
|
||||||
|
@ -50,7 +56,10 @@
|
||||||
(fn []
|
(fn []
|
||||||
(.stop react/http-bridge)
|
(.stop react/http-bridge)
|
||||||
(.removeEventListener react/app-state "change" app-state-change-handler)
|
(.removeEventListener react/app-state "change" app-state-change-handler)
|
||||||
(.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change))
|
(.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change)
|
||||||
|
(.removeEventListener rn-dependencies/react-native-shake
|
||||||
|
"ShakeEvent"
|
||||||
|
on-shake))
|
||||||
:display-name "root"
|
:display-name "root"
|
||||||
:reagent-render views/main})))
|
:reagent-render views/main})))
|
||||||
|
|
||||||
|
|
|
@ -2237,3 +2237,8 @@
|
||||||
(fx/merge cofx
|
(fx/merge cofx
|
||||||
{:db (assoc-in db [:wallet :send-transaction] {})}
|
{:db (assoc-in db [:wallet :send-transaction] {})}
|
||||||
(navigation/navigate-back))))
|
(navigation/navigate-back))))
|
||||||
|
|
||||||
|
(handlers/register-handler-fx
|
||||||
|
:shake-event
|
||||||
|
(fn [cofx _]
|
||||||
|
(logging/show-logs-dialog cofx)))
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
(defn on-languages-change [event]
|
(defn on-languages-change [event]
|
||||||
(set! (.-locale rn-dependencies/i18n) (.-language event)))
|
(set! (.-locale rn-dependencies/i18n) (.-language event)))
|
||||||
|
|
||||||
|
(defn on-shake []
|
||||||
|
(dispatch [:shake-event]))
|
||||||
|
|
||||||
(defn app-root [props]
|
(defn app-root [props]
|
||||||
(let [keyboard-height (subscribe [:keyboard-height])]
|
(let [keyboard-height (subscribe [:keyboard-height])]
|
||||||
(reagent/create-class
|
(reagent/create-class
|
||||||
|
@ -37,7 +40,10 @@
|
||||||
(dispatch [:set :keyboard-height 0])))
|
(dispatch [:set :keyboard-height 0])))
|
||||||
(.hide react/splash-screen)
|
(.hide react/splash-screen)
|
||||||
(.addEventListener react/app-state "change" app-state-change-handler)
|
(.addEventListener react/app-state "change" app-state-change-handler)
|
||||||
(.addEventListener rn-dependencies/react-native-languages "change" on-languages-change))
|
(.addEventListener rn-dependencies/react-native-languages "change" on-languages-change)
|
||||||
|
(.addEventListener rn-dependencies/react-native-shake
|
||||||
|
"ShakeEvent"
|
||||||
|
on-shake))
|
||||||
:component-did-mount
|
:component-did-mount
|
||||||
(fn [this]
|
(fn [this]
|
||||||
(dispatch [:set-initial-props (reagent/props this)]))
|
(dispatch [:set-initial-props (reagent/props this)]))
|
||||||
|
@ -45,7 +51,10 @@
|
||||||
(fn []
|
(fn []
|
||||||
(.stop react/http-bridge)
|
(.stop react/http-bridge)
|
||||||
(.removeEventListener react/app-state "change" app-state-change-handler)
|
(.removeEventListener react/app-state "change" app-state-change-handler)
|
||||||
(.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change))
|
(.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change)
|
||||||
|
(.removeEventListener rn-dependencies/react-native-shake
|
||||||
|
"ShakeEvent"
|
||||||
|
on-shake))
|
||||||
:display-name "root"
|
:display-name "root"
|
||||||
:reagent-render views/main})))
|
:reagent-render views/main})))
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
[status-im.utils.handlers :as handlers]
|
[status-im.utils.handlers :as handlers]
|
||||||
[status-im.utils.email :as mail]
|
[status-im.utils.email :as mail]
|
||||||
[taoensso.timbre :as log]
|
[taoensso.timbre :as log]
|
||||||
[status-im.utils.config :as config]))
|
[status-im.utils.config :as config]
|
||||||
|
[status-im.i18n :as i18n]))
|
||||||
|
|
||||||
(def report-email "error-reports@status.im")
|
(def report-email "error-reports@status.im")
|
||||||
(def max-log-entries 1000)
|
(def max-log-entries 1000)
|
||||||
|
@ -63,14 +64,41 @@
|
||||||
:node/status]))]
|
:node/status]))]
|
||||||
{:logs/archive-logs [db-json ::send-email]}))
|
{:logs/archive-logs [db-json ::send-email]}))
|
||||||
|
|
||||||
|
(fx/defn show-logs-dialog
|
||||||
|
[{:keys [db]}]
|
||||||
|
(when-not (:logging/dialog-shown? db)
|
||||||
|
{:db
|
||||||
|
(assoc db :logging/dialog-shown? true)
|
||||||
|
:utils/show-confirmation
|
||||||
|
{:title (i18n/label :t/send-logs)
|
||||||
|
:content (i18n/label :t/send-logs-to
|
||||||
|
{:email report-email})
|
||||||
|
:confirm-button-text (i18n/label :t/send-logs)
|
||||||
|
:on-accept #(re-frame/dispatch
|
||||||
|
[:logging.ui/send-logs-pressed])
|
||||||
|
:on-cancel #(re-frame/dispatch
|
||||||
|
[:logging/dialog-canceled])}}))
|
||||||
|
|
||||||
|
(fx/defn dialog-closed
|
||||||
|
[{:keys [db]}]
|
||||||
|
{:db (dissoc db :logging/dialog-shown?)})
|
||||||
|
|
||||||
(handlers/register-handler-fx
|
(handlers/register-handler-fx
|
||||||
::send-email
|
::send-email
|
||||||
(fn [cofx [_ archive-path]]
|
(fn [cofx [_ archive-path]]
|
||||||
(mail/send-email cofx
|
(fx/merge
|
||||||
{:subject "Error report"
|
cofx
|
||||||
:recipients [report-email]
|
(dialog-closed)
|
||||||
:body "logs attached"
|
(mail/send-email
|
||||||
:attachment {:path archive-path
|
{:subject "Error report"
|
||||||
:type "zip"
|
:recipients [report-email]
|
||||||
:name "status_logs.zip"}}
|
:body "logs attached"
|
||||||
(fn []))))
|
:attachment {:path archive-path
|
||||||
|
:type "zip"
|
||||||
|
:name "status_logs.zip"}}
|
||||||
|
(fn [])))))
|
||||||
|
|
||||||
|
(handlers/register-handler-fx
|
||||||
|
:logging/dialog-canceled
|
||||||
|
(fn [cofx]
|
||||||
|
(dialog-closed cofx)))
|
||||||
|
|
|
@ -425,6 +425,7 @@
|
||||||
"status-not-sent-tap": "Not confirmed. Tap for options",
|
"status-not-sent-tap": "Not confirmed. Tap for options",
|
||||||
"status-not-sent-click": "Not confirmed. Click for options",
|
"status-not-sent-click": "Not confirmed. Click for options",
|
||||||
"send-logs": "Send logs",
|
"send-logs": "Send logs",
|
||||||
|
"send-logs-to": "Send logs to {{email}}",
|
||||||
"edit-network-config": "Edit network config",
|
"edit-network-config": "Edit network config",
|
||||||
"clear-history-confirmation": "Clear history?",
|
"clear-history-confirmation": "Clear history?",
|
||||||
"currency-display-name-gyd": "Guyana Dollar",
|
"currency-display-name-gyd": "Guyana Dollar",
|
||||||
|
|
Loading…
Reference in New Issue