Merge branch 'dev' into profile-icons
This commit is contained in:
commit
87a951f645
10
Podfile
10
Podfile
|
@ -62,7 +62,6 @@ def shared_pods
|
|||
pod 'PureLayout', :inhibit_warnings => true
|
||||
pod 'Reachability', :inhibit_warnings => true
|
||||
pod 'YYImage', :inhibit_warnings => true
|
||||
pod 'CryptoSwift', :inhibit_warnings => true
|
||||
pod 'IGIdenticon', :inhibit_warnings => true
|
||||
end
|
||||
|
||||
|
@ -72,8 +71,13 @@ target 'Signal' do
|
|||
pod 'SSZipArchive', :inhibit_warnings => true
|
||||
|
||||
# Loki
|
||||
pod 'GCDWebServer', '~> 3.0'
|
||||
pod 'FeedKit', '~> 8.1'
|
||||
pod 'GCDWebServer', '~> 3.0', :inhibit_warnings => true
|
||||
pod 'FeedKit', '~> 8.1', :inhibit_warnings => true
|
||||
pod 'CryptoSwift', '~> 1.0', :inhibit_warnings => true
|
||||
pod 'Mixpanel', '~> 3.4', :inhibit_warnings => true
|
||||
pod 'FirebaseCore', '~> 6.0', :inhibit_warnings => true
|
||||
pod 'Fabric', '~> 1.10', :inhibit_warnings => true
|
||||
pod 'Crashlytics', '~> 3.13', :inhibit_warnings => true
|
||||
|
||||
target 'SignalTests' do
|
||||
inherit! :search_paths
|
||||
|
|
28
Podfile.lock
28
Podfile.lock
|
@ -29,6 +29,8 @@ PODS:
|
|||
- CocoaLumberjack (3.5.3):
|
||||
- CocoaLumberjack/Core (= 3.5.3)
|
||||
- CocoaLumberjack/Core (3.5.3)
|
||||
- Crashlytics (3.13.1):
|
||||
- Fabric (~> 1.10.1)
|
||||
- CryptoSwift (1.0.0)
|
||||
- Curve25519Kit (2.1.0):
|
||||
- CocoaLumberjack
|
||||
|
@ -36,10 +38,17 @@ PODS:
|
|||
- Curve25519Kit/Tests (2.1.0):
|
||||
- CocoaLumberjack
|
||||
- SignalCoreKit
|
||||
- Fabric (1.10.1)
|
||||
- FeedKit (8.1.1)
|
||||
- FirebaseCore (6.0.2):
|
||||
- GoogleUtilities/Environment (~> 6.0)
|
||||
- GoogleUtilities/Logger (~> 6.0)
|
||||
- GCDWebServer (3.5.2):
|
||||
- GCDWebServer/Core (= 3.5.2)
|
||||
- GCDWebServer/Core (3.5.2)
|
||||
- GoogleUtilities/Environment (6.2.0)
|
||||
- GoogleUtilities/Logger (6.2.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GRKOpenSSLFramework (1.0.2.12)
|
||||
- HKDFKit (0.0.4):
|
||||
- CocoaLumberjack
|
||||
|
@ -52,6 +61,7 @@ PODS:
|
|||
- Mantle (2.1.0):
|
||||
- Mantle/extobjc (= 2.1.0)
|
||||
- Mantle/extobjc (2.1.0)
|
||||
- Mixpanel (3.4.7)
|
||||
- PromiseKit (6.5.3):
|
||||
- PromiseKit/CorePromise (= 6.5.3)
|
||||
- PromiseKit/Foundation (= 6.5.3)
|
||||
|
@ -196,16 +206,20 @@ DEPENDENCIES:
|
|||
- AFNetworking
|
||||
- AxolotlKit (from `https://github.com/signalapp/SignalProtocolKit.git`, branch `master`)
|
||||
- AxolotlKit/Tests (from `https://github.com/signalapp/SignalProtocolKit.git`, branch `master`)
|
||||
- CryptoSwift
|
||||
- Crashlytics (~> 3.13)
|
||||
- CryptoSwift (~> 1.0)
|
||||
- Curve25519Kit (from `https://github.com/signalapp/Curve25519Kit`)
|
||||
- Curve25519Kit/Tests (from `https://github.com/signalapp/Curve25519Kit`)
|
||||
- Fabric (~> 1.10)
|
||||
- FeedKit (~> 8.1)
|
||||
- FirebaseCore (~> 6.0)
|
||||
- GCDWebServer (~> 3.0)
|
||||
- GRKOpenSSLFramework (from `https://github.com/signalapp/GRKOpenSSLFramework`)
|
||||
- HKDFKit (from `https://github.com/signalapp/HKDFKit.git`)
|
||||
- HKDFKit/Tests (from `https://github.com/signalapp/HKDFKit.git`)
|
||||
- IGIdenticon
|
||||
- Mantle (from `https://github.com/signalapp/Mantle`, branch `signal-master`)
|
||||
- Mixpanel (~> 3.4)
|
||||
- PromiseKit (= 6.5.3)
|
||||
- PureLayout
|
||||
- Reachability
|
||||
|
@ -225,11 +239,16 @@ SPEC REPOS:
|
|||
https://github.com/cocoapods/specs.git:
|
||||
- AFNetworking
|
||||
- CocoaLumberjack
|
||||
- Crashlytics
|
||||
- CryptoSwift
|
||||
- Fabric
|
||||
- FeedKit
|
||||
- FirebaseCore
|
||||
- GCDWebServer
|
||||
- GoogleUtilities
|
||||
- IGIdenticon
|
||||
- libPhoneNumber-iOS
|
||||
- Mixpanel
|
||||
- PromiseKit
|
||||
- PureLayout
|
||||
- Reachability
|
||||
|
@ -298,15 +317,20 @@ SPEC CHECKSUMS:
|
|||
AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
|
||||
AxolotlKit: bb02741a93400b915df1be3365ad13d3768b0103
|
||||
CocoaLumberjack: 2f44e60eb91c176d471fdba43b9e3eae6a721947
|
||||
Crashlytics: 5aa8e90dcbf2f34898b4f5a0037787531246cca0
|
||||
CryptoSwift: d81eeaa59dc5a8d03720fe919a6fd07b51f7439f
|
||||
Curve25519Kit: b3e77b7152ebe95fee2b3fb6c955449492bc14f7
|
||||
Fabric: f6f21452846788bb44595d73e9909d79d328e617
|
||||
FeedKit: 3418eed25f0b493b205b4de1b8511ac21d413fa9
|
||||
FirebaseCore: b0f0262acebfa540e5f97b3832dbb13186980822
|
||||
GCDWebServer: ead88cd14596dd4eae4f5830b8877c87c8728990
|
||||
GoogleUtilities: 996e0db07153674fd1b54b220fda3a3dc3547cba
|
||||
GRKOpenSSLFramework: 8a3735ad41e7dc1daff460467bccd32ca5d6ae3e
|
||||
HKDFKit: 3b6dbbb9d59c221cc6c52c3aa915700cbf24e376
|
||||
IGIdenticon: 5790befde4fe56296927c72c0efed3d07b21de8e
|
||||
libPhoneNumber-iOS: e444379ac18bbfbdefad571da735b2cd7e096caa
|
||||
Mantle: 2fa750afa478cd625a94230fbf1c13462f29395b
|
||||
Mixpanel: 696e0a1c7f2685aa06bb23829b7a58ab7203d6c7
|
||||
PromiseKit: c609029bdd801f792551a504c695c7d3098b42cd
|
||||
PureLayout: f08c01b8dec00bb14a1fefa3de4c7d9c265df85e
|
||||
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
|
||||
|
@ -321,6 +345,6 @@ SPEC CHECKSUMS:
|
|||
YapDatabase: b418a4baa6906e8028748938f9159807fd039af4
|
||||
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
|
||||
|
||||
PODFILE CHECKSUM: 95f41137d4fe8c5b8a27de951b328f8c9531d166
|
||||
PODFILE CHECKSUM: 1240a47686acf0d2d7e61e6ec3a925fbded184fa
|
||||
|
||||
COCOAPODS: 1.5.3
|
||||
|
|
2
Pods
2
Pods
|
@ -1 +1 @@
|
|||
Subproject commit 8b30c2d91fe7f9743350dd30521b5ca74e78766c
|
||||
Subproject commit 1d4d7b782a10e903551407c77351bf11a37d342d
|
|
@ -568,6 +568,9 @@
|
|||
B82584A02315024B001B41CB /* LokiRSSFeedPoller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825849F2315024B001B41CB /* LokiRSSFeedPoller.swift */; };
|
||||
B845B4D4230CD09100D759F0 /* LokiGroupChatPoller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B845B4D3230CD09000D759F0 /* LokiGroupChatPoller.swift */; };
|
||||
B846365B22B7418B00AF1514 /* Identicon+ObjC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B846365A22B7418B00AF1514 /* Identicon+ObjC.swift */; };
|
||||
B891105C2320872800F15FCC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B891105B2320872800F15FCC /* GoogleService-Info.plist */; };
|
||||
B891105E2320872800F15FCC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B891105B2320872800F15FCC /* GoogleService-Info.plist */; };
|
||||
B891105F2320872800F15FCC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B891105B2320872800F15FCC /* GoogleService-Info.plist */; };
|
||||
B89841E322B7579F00B1BDC6 /* NewConversationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B89841E222B7579F00B1BDC6 /* NewConversationViewController.swift */; };
|
||||
B90418E6183E9DD40038554A /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B90418E5183E9DD40038554A /* DateUtil.m */; };
|
||||
B9EB5ABD1884C002007CBB57 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EB5ABC1884C002007CBB57 /* MessageUI.framework */; };
|
||||
|
@ -1363,8 +1366,10 @@
|
|||
B8258491230FA5DA001B41CB /* ScanQRCodeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanQRCodeViewController.h; sourceTree = "<group>"; };
|
||||
B8258492230FA5E9001B41CB /* ScanQRCodeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanQRCodeViewController.m; sourceTree = "<group>"; };
|
||||
B825849F2315024B001B41CB /* LokiRSSFeedPoller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LokiRSSFeedPoller.swift; sourceTree = "<group>"; };
|
||||
B837E09223208B61003534C1 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
B845B4D3230CD09000D759F0 /* LokiGroupChatPoller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LokiGroupChatPoller.swift; sourceTree = "<group>"; };
|
||||
B846365A22B7418B00AF1514 /* Identicon+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Identicon+ObjC.swift"; sourceTree = "<group>"; };
|
||||
B891105B2320872800F15FCC /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../Downloads/GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
B89841E222B7579F00B1BDC6 /* NewConversationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewConversationViewController.swift; sourceTree = "<group>"; };
|
||||
B90418E4183E9DD40038554A /* DateUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateUtil.h; sourceTree = "<group>"; };
|
||||
B90418E5183E9DD40038554A /* DateUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateUtil.m; sourceTree = "<group>"; };
|
||||
|
@ -2722,6 +2727,7 @@
|
|||
B66DBF4919D5BBC8006EA940 /* Images.xcassets */,
|
||||
B67EBF5C19194AC60084CCFD /* Settings.bundle */,
|
||||
B657DDC91911A40500F45B0C /* Signal.entitlements */,
|
||||
B837E09223208B61003534C1 /* GoogleService-Info.plist */,
|
||||
34074F54203D0722004596AE /* Sounds */,
|
||||
76EB03C118170B33006006FC /* src */,
|
||||
D221A094169C9E5E00537ABF /* Supporting Files */,
|
||||
|
@ -2738,6 +2744,7 @@
|
|||
B6B6C3C419193F5B00C0B76B /* Translations */,
|
||||
D221A099169C9E5E00537ABF /* main.m */,
|
||||
D221A095169C9E5E00537ABF /* Signal-Info.plist */,
|
||||
B891105B2320872800F15FCC /* GoogleService-Info.plist */,
|
||||
D221A09B169C9E5E00537ABF /* Signal-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
|
@ -2889,6 +2896,7 @@
|
|||
451DE9EE1DC1546A00810E42 /* [Carthage] Copy Frameworks */,
|
||||
453518771FC635DD00210559 /* Embed App Extensions */,
|
||||
4535189F1FC63DBF00210559 /* Embed Frameworks */,
|
||||
B837E0912320894F003534C1 /* Set Up Crashlytics */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -3087,6 +3095,7 @@
|
|||
347850331FD7494A007B8332 /* fontawesome-webfont.ttf in Resources */,
|
||||
3478504C1FD7496D007B8332 /* Images.xcassets in Resources */,
|
||||
347850311FD7494A007B8332 /* dripicons-v2.ttf in Resources */,
|
||||
B891105E2320872800F15FCC /* GoogleService-Info.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3094,6 +3103,7 @@
|
|||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B891105F2320872800F15FCC /* GoogleService-Info.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3130,6 +3140,7 @@
|
|||
FC5CDF3A1A3393DD00B47253 /* warning_white@2x.png in Resources */,
|
||||
B633C58D1A1D190B0059AC12 /* contact_default_feed.png in Resources */,
|
||||
B10C9B621A7049EC00ECA2BF /* play_icon@2x.png in Resources */,
|
||||
B891105C2320872800F15FCC /* GoogleService-Info.plist in Resources */,
|
||||
B633C5861A1D190B0059AC12 /* call@2x.png in Resources */,
|
||||
B67EBF5D19194AC60084CCFD /* Settings.bundle in Resources */,
|
||||
B10C9B601A7049EC00ECA2BF /* pause_icon@2x.png in Resources */,
|
||||
|
@ -3297,9 +3308,11 @@
|
|||
"${BUILT_PRODUCTS_DIR}/FeedKit/FeedKit.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/GCDWebServer/GCDWebServer.framework",
|
||||
"${PODS_ROOT}/GRKOpenSSLFramework/OpenSSL-iOS/bin/openssl.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/HKDFKit/HKDFKit.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/IGIdenticon/IGIdenticon.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/Mantle/Mantle.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/Mixpanel/Mixpanel.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/PureLayout/PureLayout.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
|
||||
|
@ -3325,9 +3338,11 @@
|
|||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FeedKit.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GCDWebServer.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HKDFKit.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IGIdenticon.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mantle.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mixpanel.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PromiseKit.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PureLayout.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
|
||||
|
@ -3426,6 +3441,25 @@
|
|||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SignalTests/Pods-SignalTests-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
B837E0912320894F003534C1 /* Set Up Crashlytics */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
|
||||
);
|
||||
name = "Set Up Crashlytics";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Fabric/run\"\n";
|
||||
};
|
||||
F4C416F20E3CB0B25DC10C56 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "11A6AC8599513843417D550671469823"
|
||||
BlueprintIdentifier = "BF1AA1A1F4180E0BF6CA9FD699844BF7"
|
||||
BuildableName = "SignalServiceKit.framework"
|
||||
BlueprintName = "SignalServiceKit"
|
||||
ReferencedContainer = "container:Pods/Pods.xcodeproj">
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<?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>CLIENT_ID</key>
|
||||
<string>43512467490-f04dj1ssk2medqq3t33odidvmi9bi9ob.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.43512467490-f04dj1ssk2medqq3t33odidvmi9bi9ob</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyDgnrhH4AtRrZXuRIeVMLAs7UhqGTTsVdQ</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>43512467490</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.loki-project.loki-messenger</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>loki-5a81e</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>loki-5a81e.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:43512467490:ios:d1592446dbc04e6e19ba7b</string>
|
||||
<key>DATABASE_URL</key>
|
||||
<string>https://loki-5a81e.firebaseio.com</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -6,10 +6,14 @@
|
|||
<dict>
|
||||
<key>CarthageVersion</key>
|
||||
<string>0.33.0</string>
|
||||
<key>DateTime</key>
|
||||
<string>Thu Sep 5 00:37:14 UTC 2019</string>
|
||||
<key>OSXVersion</key>
|
||||
<string>10.14.6</string>
|
||||
<key>WebRTCCommit</key>
|
||||
<string>1445d719bf05280270e9f77576f80f973fd847f8 M73</string>
|
||||
<key>XCodeVersion</key>
|
||||
<string>1000.1030</string>
|
||||
</dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
|
@ -47,7 +51,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>15</string>
|
||||
<string>16</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LOGS_EMAIL</key>
|
||||
|
|
|
@ -46,6 +46,8 @@
|
|||
#import <SignalServiceKit/TSSocketManager.h>
|
||||
#import <YapDatabase/YapDatabaseCryptoUtils.h>
|
||||
#import <sys/utsname.h>
|
||||
#import <Mixpanel/Mixpanel.h>
|
||||
#import <FirebaseCore/FirebaseCore.h>
|
||||
|
||||
@import WebRTC;
|
||||
@import Intents;
|
||||
|
@ -348,6 +350,14 @@ static NSTimeInterval launchStartedAt;
|
|||
// NSLog(@"[Loki] Failed to start P2P server.");
|
||||
// }
|
||||
|
||||
// Loki - Set up beta analytics
|
||||
[Mixpanel sharedInstanceWithToken:@"0410357303b7b6b45b740e6f0e6d34be"];
|
||||
LKAnalytics.shared.trackImplementation = ^(NSString *event) {
|
||||
NSDictionary *properties = @{ @"configuration" : LKBuildConfiguration.current };
|
||||
[Mixpanel.sharedInstance track:event properties:properties];
|
||||
};
|
||||
[FIRApp configure];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
|
|
@ -91,6 +91,7 @@ final class NewConversationViewController : OWSViewController, OWSQRScannerDeleg
|
|||
}
|
||||
|
||||
func controller(_ controller: OWSQRCodeScanningViewController, didDetectQRCodeWith string: String) {
|
||||
Analytics.shared.track("QR Code Scanned")
|
||||
let hexEncodedPublicKey = string
|
||||
startNewConversationIfPossible(with: hexEncodedPublicKey)
|
||||
}
|
||||
|
@ -111,6 +112,7 @@ final class NewConversationViewController : OWSViewController, OWSQRScannerDeleg
|
|||
presentAlert(alert)
|
||||
} else {
|
||||
let thread = TSContactThread.getOrCreateThread(contactId: hexEncodedPublicKey)
|
||||
Analytics.shared.track("New Conversation Started")
|
||||
SignalApp.shared().presentConversation(for: thread, action: .compose, animated: false)
|
||||
presentingViewController!.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
|
|
|
@ -207,6 +207,7 @@ final class SeedViewController : OnboardingBaseViewController {
|
|||
|
||||
@objc private func registerOrRestore() {
|
||||
var seed: Data
|
||||
let mode = self.mode
|
||||
switch mode {
|
||||
case .register: seed = self.seed
|
||||
case .restore:
|
||||
|
@ -232,6 +233,10 @@ final class SeedViewController : OnboardingBaseViewController {
|
|||
accountManager.phoneNumberAwaitingVerification = hexEncodedPublicKey
|
||||
accountManager.didRegister()
|
||||
let onSuccess = { [weak self] in
|
||||
switch mode {
|
||||
case .register: Analytics.shared.track("Seed Created")
|
||||
case .restore: Analytics.shared.track("Seed Restored")
|
||||
}
|
||||
guard let strongSelf = self else { return }
|
||||
strongSelf.onboardingController.verificationDidComplete(fromView: strongSelf)
|
||||
UserDefaults.standard.set(true, forKey: "didUpdateForMainnet")
|
||||
|
|
|
@ -611,6 +611,16 @@ typedef enum : NSUInteger {
|
|||
[self loadDraftInCompose];
|
||||
[self applyTheme];
|
||||
[self.conversationViewModel viewDidLoad];
|
||||
|
||||
if (self.thread.isGroupThread) {
|
||||
if (self.isRSSFeed) {
|
||||
[LKAnalytics.shared track:@"RSS Feed Opened"];
|
||||
} else {
|
||||
[LKAnalytics.shared track:@"Loki Public Chat Opened"];
|
||||
}
|
||||
} else {
|
||||
[LKAnalytics.shared track:@"Conversation Opened"];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)createContents
|
||||
|
|
|
@ -74,6 +74,9 @@ public extension LokiAPI {
|
|||
return LokiAPITarget(address: "https://\(address)", port: UInt16(port))
|
||||
})
|
||||
return randomSnodePool.randomElement()!
|
||||
}.recover { error -> Promise<LokiAPITarget> in
|
||||
Analytics.shared.track("Seed Node Failed")
|
||||
throw error
|
||||
}
|
||||
} else {
|
||||
return Promise<LokiAPITarget> { seal in
|
||||
|
@ -126,6 +129,7 @@ internal extension Promise {
|
|||
let newFailureCount = oldFailureCount + 1
|
||||
LokiAPI.failureCount[target] = newFailureCount
|
||||
print("[Loki] Couldn't reach snode at: \(target); setting failure count to \(newFailureCount).")
|
||||
Analytics.shared.track("Unreachable Snode")
|
||||
if newFailureCount >= LokiAPI.failureThreshold {
|
||||
print("[Loki] Failure threshold reached for: \(target); dropping it.")
|
||||
LokiAPI.dropIfNeeded(target, hexEncodedPublicKey: hexEncodedPublicKey) // Remove it from the swarm cache associated with the given public key
|
||||
|
@ -135,6 +139,7 @@ internal extension Promise {
|
|||
case 421:
|
||||
// The snode isn't associated with the given public key anymore
|
||||
print("[Loki] Invalidating swarm for: \(hexEncodedPublicKey).")
|
||||
Analytics.shared.track("Migrated Snode")
|
||||
LokiAPI.dropIfNeeded(target, hexEncodedPublicKey: hexEncodedPublicKey)
|
||||
case 432:
|
||||
// The PoW difficulty is too low
|
||||
|
|
|
@ -178,7 +178,13 @@ public final class LokiGroupChatAPI : NSObject {
|
|||
storage.dbReadWriteConnection.removeObject(forKey: server, inCollection: authTokenCollection)
|
||||
}
|
||||
throw error
|
||||
}.retryingIfNeeded(maxRetryCount: maxRetryCount)
|
||||
}.retryingIfNeeded(maxRetryCount: maxRetryCount).map { message in
|
||||
Analytics.shared.track("Group Message Sent")
|
||||
return message
|
||||
}.recover { error -> Promise<LokiGroupMessage> in
|
||||
Analytics.shared.track("Failed to Send Group Message")
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
public static func getDeletedMessageServerIDs(for group: UInt64, on server: String) -> Promise<[UInt64]> {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
@objc(LKAnalytics)
|
||||
public final class Analytics : NSObject {
|
||||
@objc public var trackImplementation: ((String) -> Void)! // Set in AppDelegate.m
|
||||
|
||||
@objc public static let shared = Analytics()
|
||||
|
||||
@objc public func track(_ event: String) {
|
||||
trackImplementation(event)
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
public enum BuildConfiguration {
|
||||
public enum BuildConfiguration : CustomStringConvertible {
|
||||
case debug, production
|
||||
|
||||
public static let current: BuildConfiguration = {
|
||||
|
@ -9,4 +9,18 @@ public enum BuildConfiguration {
|
|||
return .production
|
||||
#endif
|
||||
}()
|
||||
|
||||
public var description: String {
|
||||
switch self {
|
||||
case .debug: return "debug"
|
||||
case .production: return "production"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@objc public final class LKBuildConfiguration : NSObject {
|
||||
|
||||
override private init() { }
|
||||
|
||||
@objc public static var current: String { return BuildConfiguration.current.description }
|
||||
}
|
||||
|
|
|
@ -1171,6 +1171,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|||
[promise
|
||||
.thenOn(OWSDispatch.sendingQueue, ^(id result) {
|
||||
if (isSuccess) { return; } // Succeed as soon as the first promise succeeds
|
||||
[LKAnalytics.shared track:@"Sent Message Using Swarm API"];
|
||||
isSuccess = YES;
|
||||
if (signalMessage.type == TSFriendRequestMessageType) {
|
||||
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||
|
@ -1190,6 +1191,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|||
.catchOn(OWSDispatch.sendingQueue, ^(NSError *error) {
|
||||
errorCount += 1;
|
||||
if (errorCount != promiseCount) { return; } // Only error out if all promises failed
|
||||
[LKAnalytics.shared track:@"Failed to Send Message Using Swarm API"];
|
||||
handleError(error);
|
||||
}) retainUntilComplete];
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>15</string>
|
||||
<string>16</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
|
|
Loading…
Reference in New Issue