Browse Source

FIX: Fix currency bugs

experimental
Marcos Rodriguez 5 years ago
parent
commit
cfcddcc263
  1. 32
      ios/BlueWallet.xcodeproj/project.pbxproj
  2. 17
      ios/TodayExtension/New Group/API.swift
  3. 3
      ios/TodayExtension/TodayDataStore.swift
  4. 11
      ios/TodayExtension/TodayViewController.swift

32
ios/BlueWallet.xcodeproj/project.pbxproj

@ -694,7 +694,7 @@
13B07F861A680F5B00A75B9A = {
DevelopmentTeam = A7W54YZ4WU;
LastSwiftMigration = 1030;
ProvisioningStyle = Manual;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.Keychain = {
enabled = 0;
@ -715,7 +715,7 @@
3271B0A8236E2E0700DA766F = {
CreatedOnToolsVersion = 11.2;
DevelopmentTeam = A7W54YZ4WU;
ProvisioningStyle = Manual;
ProvisioningStyle = Automatic;
};
B40D4E2F225841EC00428FCC = {
CreatedOnToolsVersion = 10.2;
@ -1234,11 +1234,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BlueWallet/BlueWallet.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = A7W54YZ4WU;
DEVELOPMENT_TEAM = "";
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = BlueWallet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1254,7 +1254,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet;
PRODUCT_NAME = BlueWallet;
PROVISIONING_PROFILE_SPECIFIER = "io.bluewallet.bluewallet AppStore";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "BlueWallet-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.2;
@ -1271,10 +1271,10 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BlueWallet/BlueWallet.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = A7W54YZ4WU;
DEVELOPMENT_TEAM = "";
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = BlueWallet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1290,7 +1290,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet;
PRODUCT_NAME = BlueWallet;
PROVISIONING_PROFILE_SPECIFIER = "BlueWallet Apple Development";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "BlueWallet-Bridging-Header.h";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
@ -1522,8 +1522,8 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "TodayExtension/BlueWallet - Bitcoin Price.entitlements";
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = A7W54YZ4WU;
GCC_C_LANGUAGE_STANDARD = gnu11;
@ -1534,7 +1534,7 @@
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
PRODUCT_NAME = "BlueWallet - Bitcoin Price";
PROVISIONING_PROFILE_SPECIFIER = io.bluewallet.bluewallet.TodayExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -1553,8 +1553,8 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "TodayExtension/BlueWallet - Bitcoin Price.entitlements";
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = A7W54YZ4WU;
@ -1565,7 +1565,7 @@
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
PRODUCT_NAME = "BlueWallet - Bitcoin Price";
PROVISIONING_PROFILE_SPECIFIER = io.bluewallet.bluewallet.TodayExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 4.2;

17
ios/TodayExtension/New Group/API.swift

@ -9,12 +9,12 @@
import Foundation
class API {
static func fetchPrice(currency: String, completion: @escaping ((Dictionary<String, Any>?, Error?) -> Void)) {
guard let url = URL(string: "https://api.coindesk.com/v1/bpi/currentPrice/\(currency).json") else {return}
URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
guard let dataResponse = data,
let json = try? JSONSerialization.jsonObject(with: dataResponse, options: .mutableContainers) as? Dictionary<String, Any>,
error == nil else {
print(error?.localizedDescription ?? "Response Error")
@ -43,4 +43,17 @@ class API {
return preferredCurrency
}
static func getLastSelectedCurrency() -> String {
guard let dataStore = UserDefaults.standard.value(forKey: "currency") as? String else {
return "USD"
}
UserDefaults.standard.setValue(API.getUserPreferredCurrency(), forKey: "currency")
return dataStore
}
static func saveNewSelectedCurrency() {
UserDefaults.standard.setValue(API.getUserPreferredCurrency(), forKey: "currency")
}
}

3
ios/TodayExtension/TodayDataStore.swift

@ -28,5 +28,8 @@ class TodayData {
}
return TodayDataStore(rate: rate, lastUpdate: lastUpdate)
}
}

11
ios/TodayExtension/TodayViewController.swift

@ -82,7 +82,7 @@ class TodayViewController: UIViewController, NCWidgetProviding {
return
}
guard let bpi = result["bpi"] as? Dictionary<String, Any>, let userPreferredCurrency = bpi[userPreferredCurrency] as? Dictionary<String, Any>, let rateString = userPreferredCurrency["rate"] as? String,
guard let bpi = result["bpi"] as? Dictionary<String, Any>, let preferredCurrency = bpi[userPreferredCurrency] as? Dictionary<String, Any>, let rateString = preferredCurrency["rate"] as? String,
let time = result["time"] as? Dictionary<String, Any>, let lastUpdatedString = time["updatedISO"] as? String
else {
return
@ -90,15 +90,15 @@ class TodayViewController: UIViewController, NCWidgetProviding {
let todayStore = TodayDataStore(rate: rateString, lastUpdate: lastUpdatedString)
if let lastStoredTodayStore = TodayData.getPriceRateAndLastUpdate(), lastStoredTodayStore.lastUpdate == todayStore.lastUpdate, rateString == lastStoredTodayStore.rate {
if let lastStoredTodayStore = TodayData.getPriceRateAndLastUpdate(), lastStoredTodayStore.lastUpdate == todayStore.lastUpdate, rateString == lastStoredTodayStore.rate, API.getLastSelectedCurrency() == userPreferredCurrency {
completionHandler(.noData)
} else {
let newRate = self.processRateAndLastUpdate(todayStore: todayStore)
let priceRiceAndLastUpdate = TodayData.getPriceRateAndLastUpdate()
let lastPriceNumber = self.processStoredRateAndLastUpdate(todayStore: priceRiceAndLastUpdate ?? todayStore)
if let newRate = newRate, let lastPriceNumber = lastPriceNumber {
if let newRate = newRate, let lastPriceNumber = lastPriceNumber, API.getLastSelectedCurrency() == userPreferredCurrency {
self.lastPriceNumber = newRate
if newRate.doubleValue > lastPriceNumber.doubleValue {
self.lastPriceArrowImage.image = UIImage(systemName: "arrow.up")
self.setLastPriceOutletsHidden(isHidden: false)
@ -108,9 +108,12 @@ class TodayViewController: UIViewController, NCWidgetProviding {
self.lastPriceArrowImage.image = UIImage(systemName: "arrow.down")
self.setLastPriceOutletsHidden(isHidden: false)
}
} else {
self.setLastPriceOutletsHidden(isHidden: true)
}
TodayData.savePriceRateAndLastUpdate(rate: todayStore.rate, lastUpdate: todayStore.lastUpdate)
API.saveNewSelectedCurrency()
completionHandler(.newData)
}
}

Loading…
Cancel
Save