From b7bd6456e64119d1775db64b2c4d807ba8bb1ba8 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Thu, 19 Jul 2018 14:30:51 -0400 Subject: [PATCH 01/11] Remove unused canned.json from resources. HardCodedServerResponse uses the one from the main bundle if enabled and file exists. --- MVMCore/MVMCore.xcodeproj/project.pbxproj | 4 - .../HardCodedServerResponse/canned.json | 678 ------------------ 2 files changed, 682 deletions(-) delete mode 100644 MVMCore/MVMCore/Utility/HardCodedServerResponse/canned.json diff --git a/MVMCore/MVMCore.xcodeproj/project.pbxproj b/MVMCore/MVMCore.xcodeproj/project.pbxproj index f1d48bc..a5c1c08 100644 --- a/MVMCore/MVMCore.xcodeproj/project.pbxproj +++ b/MVMCore/MVMCore.xcodeproj/project.pbxproj @@ -118,7 +118,6 @@ AFBB96B81FBA3CEC0008D868 /* MVMCoreActionDelegateProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBB96B51FBA3CEC0008D868 /* MVMCoreActionDelegateProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; AFBB96B91FBA3CEC0008D868 /* MVMCoreActionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBB96B61FBA3CEC0008D868 /* MVMCoreActionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; AFBB96BA1FBA3CEC0008D868 /* MVMCoreActionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = AFBB96B71FBA3CEC0008D868 /* MVMCoreActionHandler.m */; }; - AFBB96EB1FBA4A260008D868 /* canned.json in Resources */ = {isa = PBXBuildFile; fileRef = AFBB96E81FBA4A260008D868 /* canned.json */; }; AFBB96EC1FBA4A260008D868 /* MFHardCodedServerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBB96E91FBA4A260008D868 /* MFHardCodedServerResponse.h */; }; AFBB96ED1FBA4A260008D868 /* MFHardCodedServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AFBB96EA1FBA4A260008D868 /* MFHardCodedServerResponse.m */; }; AFC5FA161FFC2E2A00C244CF /* MVMCoreGlobalTopAlertDelegateProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFC5FA141FFC2E2A00C244CF /* MVMCoreGlobalTopAlertDelegateProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -248,7 +247,6 @@ AFBB96B61FBA3CEC0008D868 /* MVMCoreActionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVMCoreActionHandler.h; sourceTree = ""; }; AFBB96B71FBA3CEC0008D868 /* MVMCoreActionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MVMCoreActionHandler.m; sourceTree = ""; }; AFBB96D21FBA44420008D868 /* VZWAuthentication.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VZWAuthentication.framework; path = ../../SharedFrameworks/VZWAuthentication.framework; sourceTree = ""; }; - AFBB96E81FBA4A260008D868 /* canned.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = canned.json; sourceTree = ""; }; AFBB96E91FBA4A260008D868 /* MFHardCodedServerResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MFHardCodedServerResponse.h; sourceTree = ""; }; AFBB96EA1FBA4A260008D868 /* MFHardCodedServerResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MFHardCodedServerResponse.m; sourceTree = ""; }; AFC5FA141FFC2E2A00C244CF /* MVMCoreGlobalTopAlertDelegateProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MVMCoreGlobalTopAlertDelegateProtocol.h; sourceTree = ""; }; @@ -574,7 +572,6 @@ AFBB96E71FBA4A260008D868 /* HardCodedServerResponse */ = { isa = PBXGroup; children = ( - AFBB96E81FBA4A260008D868 /* canned.json */, AFBB96E91FBA4A260008D868 /* MFHardCodedServerResponse.h */, AFBB96EA1FBA4A260008D868 /* MFHardCodedServerResponse.m */, ); @@ -733,7 +730,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - AFBB96EB1FBA4A260008D868 /* canned.json in Resources */, AF26DDAE1FCE6A37004E8F65 /* Localizable.strings in Resources */, AFBB96561FBA3A570008D868 /* freebee.json in Resources */, AFBB96591FBA3A570008D868 /* freebeelaunchApp.json in Resources */, diff --git a/MVMCore/MVMCore/Utility/HardCodedServerResponse/canned.json b/MVMCore/MVMCore/Utility/HardCodedServerResponse/canned.json deleted file mode 100644 index 781fb51..0000000 --- a/MVMCore/MVMCore/Utility/HardCodedServerResponse/canned.json +++ /dev/null @@ -1,678 +0,0 @@ -{ - "selectFeedbackSource": { - "ResponseInfo": { - "locale": "EN", - "server": "twswcmvmzad03.tdc.vzwcorp.com-srv01_nmobilefirst01", - "userMessage": "0", - "code": "00000", - "message": "0", - "mdn": "7323798012", - "buildNumber": "9633", - "type": "Success", - "requestId": "990372c1-19de-44b1-935f-6cedfbe36d41" - }, - "Page": { - "pageType": "exploreZoneRtl", - "parentPageType": "visitUsRtl", - "tab": [ - { - "actionType": "openPage", - "pageType": "exploreZoneRtl", - "extraParameters": { - "zoneId": "90", - "zoneName": "GetFitZone" - }, - "itemName": "Get Fit", - "title": "Get Fit", - "appContext": "mobileFirstSS", - "modules": [ - "GetFitZone" - ] - }, - { - "actionType": "openPage", - "pageType": "exploreZoneRtl", - "extraParameters": { - "zoneId": "91", - "zoneName": "AmplifyItZone" - }, - "itemName": "Amplify It", - "title": "Amplify It", - "appContext": "mobileFirstSS", - "modules": [ - "AmplifyItZone" - ] - }, - { - "actionType": "openPage", - "pageType": "exploreZoneRtl", - "extraParameters": { - "zoneId": "93", - "zoneName": "HomeServicesZone" - }, - "itemName": "Home Service", - "title": "Home Service", - "appContext": "mobileFirstSS", - "modules": [ - "HomeServicesZone" - ] - } - ], - "beaconids": [ - { - "tabIndex": 0, - "minor": 23233, - "zoneId": 90, - "major": 7203, - "locationCode": "W078801", - "header": null - }, - { - "tabIndex": 1, - "minor": 23424, - "zoneId": 91, - "major": 7203, - "locationCode": "W078801", - "header": null - }, - { - "tabIndex": 2, - "minor": 24016, - "zoneId": 93, - "major": 7203, - "locationCode": "W078801", - "header": null - } - ], - "title": "Title", - "message": "Please enable your Bluetooth to detect the zone you are exploring", - "currentTabIndex": 1, - "ButtonMap": { - "AsyncCallButton": { - "actionType": "openPage", - "pageType": "exploreZoneModAsyncRtl", - "tryToReplaceFirst": false, - "title": "Explore Zone Async Call", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "screenHeading": "Explore Products" - }, - "ModuleMap": { - "AmplifyItZone": { - "mappoint": "AmplifyItZone", - "zoneId": "91", - "name": "Amplify It", - "ResponseInfo": { - "locale": "EN", - "code": "00000", - "message": "0", - "userMessage": "0", - "type": "Success" - }, - "skuList": [ - [ - { - "deviceTitle": "Flip 2", - "stockInWarehouse": false, - "colorCode": "#003399", - "colorName": "Blue", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/jbl-flip-2-blue-FLIPIIBLUAM-imageset?$acc-lg$", - "preSelected": false, - "qty": 349991, - "skuId": "FLIPIIBLUAM", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "FLIPIIBLUAM", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "FLIPIIBLUAM" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "FLIPIIBLUAM" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc2040005", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "79.98" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "79.98" - } - }, - "device": false, - "sorId": "sku870003", - "stockInStore": true - }, - { - "deviceTitle": "Flip 2", - "stockInWarehouse": false, - "colorCode": "#000000", - "colorName": "Black", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/jbl-flip-2-black-FLIPIIBLKAM-imageset?$acc-lg$", - "preSelected": true, - "qty": 349880, - "skuId": "FLIPIIBLKAM", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "FLIPIIBLKAM", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "FLIPIIBLKAM" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "FLIPIIBLKAM" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc2040005", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "69.98" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "69.98" - } - }, - "device": false, - "sorId": "sku870008", - "stockInStore": true - }, - { - "deviceTitle": "Flip 2", - "stockInWarehouse": false, - "colorCode": "#ff0000", - "colorName": "Red", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/jbl-flip-2-red-FLIPIIREDAM-imageset?$acc-lg$", - "preSelected": false, - "qty": 349989, - "skuId": "FLIPIIREDAM", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "FLIPIIREDAM", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "FLIPIIREDAM" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "FLIPIIREDAM" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc2040005", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "79.98" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "79.98" - } - }, - "device": false, - "sorId": "sku870005", - "stockInStore": true - }, - { - "deviceTitle": "Flip 2", - "stockInWarehouse": false, - "colorCode": "#FFFF00", - "colorName": "Yellow", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/jbl-flip-2-yellow-FLIPIIYELAM-imageset?$acc-lg$", - "preSelected": false, - "qty": 350000, - "skuId": "FLIPIIYELAM", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "FLIPIIYELAM", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "FLIPIIYELAM" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "FLIPIIYELAM" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc2040005", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "79.98" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "79.98" - } - }, - "device": false, - "sorId": "sku870006", - "stockInStore": true - }, - { - "deviceTitle": "Flip 2", - "stockInWarehouse": false, - "colorCode": "#FFFFFF", - "colorName": "White", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/jbl-flip-2-white-FLIPIIWHTAM-imageset?$acc-lg$", - "preSelected": false, - "qty": 349999, - "skuId": "FLIPIIWHTAM", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "FLIPIIWHTAM", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "FLIPIIWHTAM" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "FLIPIIWHTAM" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc2040005", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "79.98" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "79.98" - } - }, - "device": false, - "sorId": "sku870007", - "stockInStore": true - } - ], - [ - { - "deviceTitle": "QuietComfort 25 Acoustic Noise Cancelling headphones - Apple devices", - "stockInWarehouse": false, - "colorCode": "#FFFFFF", - "colorName": "White", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/bose-quietcomfort-25-acoustic-noise-cancelling-headphones-white-iset-715053-0020?$acc-lg$", - "preSelected": false, - "qty": 99986, - "skuId": "715053-0020", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "715053-0020", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "715053-0020" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "715053-0020" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc4120007", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "299.99" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "299.99" - } - }, - "device": false, - "sorId": "sku1450111", - "stockInStore": true - }, - { - "deviceTitle": "QuietComfort 25 Acoustic Noise Cancelling headphones - Apple devices", - "stockInWarehouse": false, - "colorCode": "#000000", - "colorName": "Black", - "isDevice": false, - "discountFlag": false, - "imageUrl": "https://mobile-edev.vzw.com/dev01/geofencing/instore/images/smart/s7/is/image/VerizonWireless/bose-quietcomfort-25-acoustic-noise-cancelling-headphones-black-iset-715053-0010?$acc-lg$", - "preSelected": true, - "qty": 99974, - "skuId": "715053-0010", - "ButtonMap": { - "PrimaryButton": { - "actionType": "openPage", - "pageType": "addToSharedCartRtl", - "extraParameters": { - "cmd": "add", - "cart": [ - { - "sku": "715053-0010", - "qty": 1 - } - ] - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Add to cart", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "MoreColors": { - "actionType": "openPage", - "pageType": "exploreZoneMoreClrsRtl", - "extraParameters": { - "sku": "715053-0010" - }, - "tryToReplaceFirst": false, - "title": "More colors", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - }, - "SecondaryButton": { - "actionType": "openPage", - "pageType": "getPDPBySKURtl", - "extraParameters": { - "sku": "715053-0010" - }, - "presentationStyle": "push", - "tryToReplaceFirst": false, - "title": "Learn more", - "selected": false, - "disableAction": false, - "appContext": "mobileFirstSS", - "isSelected": false - } - }, - "inStorePurchase": false, - "fallBackImageUrl": "ICON_DFLT_ACCESSORY_IMG", - "accessoryId": "acc4120007", - "inventoryMsg": "In stock, take it with you today.", - "priceMap": { - "netPrice": { - "price": "299.99" - }, - "discountPrice": { - "price": "0" - }, - "originalPrice": { - "price": "299.99" - } - }, - "device": false, - "sorId": "sku1450115", - "stockInStore": true - } - ] - ] - } - } - } -} From 80ba74c932817b14c9e35367ad9435215fa2a8c2 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Thu, 19 Jul 2018 14:42:53 -0400 Subject: [PATCH 02/11] MVMCoreLog import --- .../HardCodedServerResponse/MFHardCodedServerResponse.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/Utility/HardCodedServerResponse/MFHardCodedServerResponse.m b/MVMCore/MVMCore/Utility/HardCodedServerResponse/MFHardCodedServerResponse.m index d71c797..4ed21be 100644 --- a/MVMCore/MVMCore/Utility/HardCodedServerResponse/MFHardCodedServerResponse.m +++ b/MVMCore/MVMCore/Utility/HardCodedServerResponse/MFHardCodedServerResponse.m @@ -9,6 +9,7 @@ #import "MFHardCodedServerResponse.h" #import "MVMCoreRequestParameters.h" #import "NSDictionary+MFConvenience.h" +#import "MVMCoreLoggingHandler.h" #if ENABLE_HARD_CODED_RESPONSE @@ -48,7 +49,7 @@ if(error) { MVMCoreLog(@"Error creating JSON!"); } else { - //DLog(@"Canned json responses:%@", jsonObj); + //MVMCoreLog(@"Loaded canned json responses:\n%@", jsonObj); } } } From 28669972490c955e24b93e462a49fc899b570240 Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Thu, 26 Jul 2018 16:40:05 -0400 Subject: [PATCH 03/11] hot fix for session being nil, causing operation to hang forever. Will change to logging error once we fix the session restart foreground race condition. Crash catch for carousel when no feed cards are found. Will not look right, but can't afford the crash in case of race condition that is still live with session clearing. Fix push feed leak --- MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m index c407018..f619c83 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m @@ -310,8 +310,15 @@ } return nil; } + NSURLSession *session = [MVMCoreSessionObject sharedGlobal].session; - + if (!session) { +#warning Hotfix for when session is nil. We should switch to logging these errors once we fix how session handler misses canceling certain calls because they happen at the same time. + error = [[MVMCoreErrorObject alloc] initWithTitle:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorTitle] message:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorCritical] messageToLog:nil code:ErrorCodeDefault domain:ErrorDomainNative location:locationForError]; + error.logError = NO; + requestFinished(nil,error); + } + if ([[MFFreebeeHandler sharedHandler] isFreeBeeEnabled] && [[MFFreebeeHandler sharedHandler] isValidCampaign]) { BOOL isAllowedPage = [[MFFreebeeHandler sharedHandler] isAllowedPage:requestParameters.pageType]; From c1318adcc5e7346239cc94d4c785f1757eb09a06 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 31 Jul 2018 15:07:08 -0400 Subject: [PATCH 04/11] fix label with internal button clickeable rect --- MVMCore/MVMCore/Categories/UILabel+MFCustom.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m index f1575b9..d41be5a 100644 --- a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m +++ b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m @@ -50,7 +50,8 @@ [textStorage addLayoutManager:layoutManager]; NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.bounds.size]; - textContainer.lineFragmentPadding = 0; + // commenting out for after ios 10. keep this commented code for future references and monitoring + //textContainer.lineFragmentPadding = 0; textContainer.lineBreakMode = self.lineBreakMode; From c938d03cc6c2a41d8ad9ebed5cb257b9d1066bb7 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Mon, 6 Aug 2018 15:31:59 -0400 Subject: [PATCH 05/11] Add capability to exclude initial parameters. --- .DS_Store | Bin 6148 -> 0 bytes MVMCore/MVMCore.xcodeproj/project.pbxproj | 1 + .../MVMCore/LoadHandling/MVMCoreLoadHandler.m | 2 +- .../LoadHandling/MVMCoreRequestParameters.h | 5 ++++- .../LoadHandling/MVMCoreRequestParameters.m | 1 + MVMCore/MVMCore/Session/MVMCoreSessionObject.h | 2 ++ MVMCore/MVMCore/Session/MVMCoreSessionObject.m | 4 ++++ 7 files changed, 13 insertions(+), 2 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 73e14d7a1d2b81da21dbcb48c5f87382bcce3744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJx{|h5PgP9RATAKn16s6*chS`Hp)@~BT!nZiX^R?4~Z>5opAWWO(1uy|HW)loD7%*`UhK`JUObnW1i#=AmdU4xS1Bw2kOZI+(86McK z@ooS0o{=luqr!@BRpA^TctMFZYHV=Hc}DWd!d^a^K2)}!Wm*Li`K@h2?FY1wkd zcH|Yr1@q+ey%FUJHF+EQCC|{V?wU$>^<%$>+;+Y%^KH3igujcME8q&a0l0VN6>tUOw_`#f%3YhVJ+p}kuag0do<{ diff --git a/MVMCore/MVMCore.xcodeproj/project.pbxproj b/MVMCore/MVMCore.xcodeproj/project.pbxproj index a5c1c08..b73a67e 100644 --- a/MVMCore/MVMCore.xcodeproj/project.pbxproj +++ b/MVMCore/MVMCore.xcodeproj/project.pbxproj @@ -959,6 +959,7 @@ "$(PROJECT_DIR)/MVMCore/EmbeddedLibaries/AdobeMobileLibrary", "$(PROJECT_DIR)/MVMCore/EmbeddedLibraries/VZAnalytics", ); + ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.vzw.MVMCore; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m index f619c83..a3b244e 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadHandler.m @@ -165,7 +165,7 @@ // Sets up the Initial parameters. if (requestParameters.addInitialRequestParameters) { - NSDictionary *initialParameters = [[MVMCoreSessionObject sharedGlobal] getInitialParameters]; + NSDictionary *initialParameters = [[MVMCoreSessionObject sharedGlobal] getInitialParametersExcludingSections:requestParameters.excludedInitialParameters]; if (initialParameters) { [parameters setObject:initialParameters forKey:@"InitialParams"]; } diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h index 315c521..b9b17c1 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h @@ -63,6 +63,9 @@ typedef NS_ENUM(NSInteger, MFLoadStyle) { // A flag for if we should be adding the initial request parameters. @property (assign, nonatomic) BOOL addInitialRequestParameters; +// A list of initial parameter sections to blacklist / skip. +@property (nullable, strong, nonatomic) NSArray *excludedInitialParameters; + // A flag for if we should always show alerts, even during a background load. @property (assign) BOOL allowAlertsIfBackgroundRequest; @@ -88,7 +91,7 @@ typedef NS_ENUM(NSInteger, MFLoadStyle) { @property (nonatomic) BOOL openSupportPanel; // A list of page types that this operation should NOT be loaded in parallel with. -@property (nonatomic) NSArray* _Nullable successivePageTypes; +@property (nullable, strong, nonatomic) NSArray * successivePageTypes; // Creates an object with the given page type and extra parameters. Adds the extra parameters to the standard request parameters. Will add any modules needed by the page type by default. - (nullable instancetype)initWithPageType:(nonnull NSString *)pageType extraParameters:(nullable NSDictionary *)extraParameters; diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.m b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.m index 70bb74c..8524bf3 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.m @@ -125,6 +125,7 @@ copyObject.shouldNotGoToServerOnCacheFail = self.shouldNotGoToServerOnCacheFail; copyObject.neverLoadFromCache = self.neverLoadFromCache; copyObject.addInitialRequestParameters = self.addInitialRequestParameters; + copyObject.excludedInitialParameters = self.excludedInitialParameters; copyObject.tabWasPressed = self.tabWasPressed; copyObject.navigationController = self.navigationController; copyObject.allowAlertsIfBackgroundRequest = self.allowAlertsIfBackgroundRequest; diff --git a/MVMCore/MVMCore/Session/MVMCoreSessionObject.h b/MVMCore/MVMCore/Session/MVMCoreSessionObject.h index 04f64ad..9b5f2ae 100644 --- a/MVMCore/MVMCore/Session/MVMCoreSessionObject.h +++ b/MVMCore/MVMCore/Session/MVMCoreSessionObject.h @@ -28,6 +28,8 @@ // Gets inital parameters for request parameters. - (nullable NSDictionary *)getInitialParameters; +// Gets inital parameters for request parameters excluding any items given a list of key names. +- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSArray *)excludeSections; // Restarts the application session state. Can clear variables and pass a page type if needed. - (void)restartSessionWithPageType:(nullable NSString *)pageType parameters:(nullable NSDictionary *)parameters clearAllVariables:(BOOL)clearAllVariables; diff --git a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m index 343afbb..57813ac 100644 --- a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m +++ b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m @@ -16,6 +16,10 @@ } - (nullable NSDictionary *)getInitialParameters { + return [self getInitialParametersExcludingSections:nil]; +} + +- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSArray *)excludeSections { return nil; } From 20d9261cb3d9e3ff746f5c745acee7228c33319f Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Mon, 6 Aug 2018 17:52:17 -0400 Subject: [PATCH 06/11] Allow the server to specify whether to extend the session timer. --- MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h | 2 ++ MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m | 6 ++++++ MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m | 4 +++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h index dfe6705..dbaee70 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h @@ -48,6 +48,8 @@ @property (nonatomic) BOOL pageDataFromCache; @property (nonatomic) BOOL moduleDataFromCache; +@property (nonatomic, readonly) BOOL extendsAppSession; + - (nullable instancetype)initWithPageJSON:(nullable NSDictionary *)pageJSON modulesJSON:(nullable NSDictionary *)modulesJSON requestParameters:(nullable MVMCoreRequestParameters *)requestParameters dataForPage:(nullable NSDictionary *)dataForPage delegate:(nullable NSObject*)delegate; - (nullable instancetype)initWithRequestParameters:(nullable MVMCoreRequestParameters *)requestParameters dataForPage:(nullable NSDictionary *)dataForPage delegate:(nullable NSObject*)delegate; diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m index 3064012..01fd7cf 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m @@ -9,6 +9,7 @@ #import "MVMCoreLoadObject.h" #import "MVMCoreErrorObject.h" #import "MVMCoreJSONConstants.h" +#import "NSDictionary+MFConvenience.h" @implementation MVMCoreLoadObject @@ -54,4 +55,9 @@ return self; } +- (BOOL) extendsAppSession { + NSNumber *extendSessionFlag = [self.responseInfoMap objectForKey:@"appSessionExtended" ofType:[NSNumber class]]; + return !extendSessionFlag || [extendSessionFlag boolValue]; // Default to YES if the key does not exist. +} + @end diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m index 7c919b1..020d724 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m @@ -284,7 +284,9 @@ if ([jsonObject isKindOfClass:[NSDictionary class]]) { // Update the session timer on a good response. - [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; + if (loadObject.extendsAppSession) { + [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; + } completionHandler(jsonObject); } else { From 5e5cb1a5525f7c3cba75650ba177304c0fa14d40 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Tue, 7 Aug 2018 12:21:15 -0400 Subject: [PATCH 07/11] Adjust timing of session timer extension. PR resolution. --- MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h | 5 +++-- MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m | 2 +- .../LoadHandling/MVMCoreLoadRequestOperation.m | 11 ++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h index dbaee70..014e4ba 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.h @@ -48,8 +48,6 @@ @property (nonatomic) BOOL pageDataFromCache; @property (nonatomic) BOOL moduleDataFromCache; -@property (nonatomic, readonly) BOOL extendsAppSession; - - (nullable instancetype)initWithPageJSON:(nullable NSDictionary *)pageJSON modulesJSON:(nullable NSDictionary *)modulesJSON requestParameters:(nullable MVMCoreRequestParameters *)requestParameters dataForPage:(nullable NSDictionary *)dataForPage delegate:(nullable NSObject*)delegate; - (nullable instancetype)initWithRequestParameters:(nullable MVMCoreRequestParameters *)requestParameters dataForPage:(nullable NSDictionary *)dataForPage delegate:(nullable NSObject*)delegate; @@ -58,4 +56,7 @@ - (nullable instancetype)initWithPageJSON:(nullable NSDictionary *)pageJSON errorObject:(nullable MVMCoreErrorObject *)errorObject; +// Returns whether the load will extend the app session timer based on the response provided by the server. +- (BOOL)extendsAppSession; + @end diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m index 01fd7cf..388f911 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadObject.m @@ -55,7 +55,7 @@ return self; } -- (BOOL) extendsAppSession { +- (BOOL)extendsAppSession { NSNumber *extendSessionFlag = [self.responseInfoMap objectForKey:@"appSessionExtended" ofType:[NSNumber class]]; return !extendSessionFlag || [extendSessionFlag boolValue]; // Default to YES if the key does not exist. } diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m index 020d724..f525969 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m @@ -164,6 +164,11 @@ return; } + // Update the session timer on a good response. + if (loadObject.extendsAppSession) { + [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; + } + if (loadObject.pageDataFromCache || loadObject.pageType) { // Can continue loading with the page. @@ -283,12 +288,8 @@ if ([jsonObject isKindOfClass:[NSDictionary class]]) { - // Update the session timer on a good response. - if (loadObject.extendsAppSession) { - [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; - } - completionHandler(jsonObject); + } else { // Error json not correct format. From 6c177efd8f9ebcc553ac7908646fdf41efb05c87 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Wed, 8 Aug 2018 18:21:35 -0400 Subject: [PATCH 08/11] Switch to using NSSet to satisfy PR. --- MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h | 2 +- MVMCore/MVMCore/Session/MVMCoreSessionObject.h | 2 +- MVMCore/MVMCore/Session/MVMCoreSessionObject.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h index b9b17c1..b53ae9d 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreRequestParameters.h @@ -64,7 +64,7 @@ typedef NS_ENUM(NSInteger, MFLoadStyle) { @property (assign, nonatomic) BOOL addInitialRequestParameters; // A list of initial parameter sections to blacklist / skip. -@property (nullable, strong, nonatomic) NSArray *excludedInitialParameters; +@property (nullable, strong, nonatomic) NSSet *excludedInitialParameters; // A flag for if we should always show alerts, even during a background load. @property (assign) BOOL allowAlertsIfBackgroundRequest; diff --git a/MVMCore/MVMCore/Session/MVMCoreSessionObject.h b/MVMCore/MVMCore/Session/MVMCoreSessionObject.h index 9b5f2ae..c2a85e6 100644 --- a/MVMCore/MVMCore/Session/MVMCoreSessionObject.h +++ b/MVMCore/MVMCore/Session/MVMCoreSessionObject.h @@ -29,7 +29,7 @@ // Gets inital parameters for request parameters. - (nullable NSDictionary *)getInitialParameters; // Gets inital parameters for request parameters excluding any items given a list of key names. -- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSArray *)excludeSections; +- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSSet *)excludeSections; // Restarts the application session state. Can clear variables and pass a page type if needed. - (void)restartSessionWithPageType:(nullable NSString *)pageType parameters:(nullable NSDictionary *)parameters clearAllVariables:(BOOL)clearAllVariables; diff --git a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m index 57813ac..b49132d 100644 --- a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m +++ b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m @@ -19,7 +19,7 @@ return [self getInitialParametersExcludingSections:nil]; } -- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSArray *)excludeSections { +- (nullable NSDictionary *)getInitialParametersExcludingSections:(nullable NSSet *)excludeSections { return nil; } From 098aded7edbe0159f51e4bce236c41f445288dd2 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Thu, 9 Aug 2018 11:21:57 -0400 Subject: [PATCH 09/11] More aggressive session extension. --- .../MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m index f525969..b01a990 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m @@ -163,11 +163,6 @@ if ([loadObject.operation checkAndHandleForCancellation]) { return; } - - // Update the session timer on a good response. - if (loadObject.extendsAppSession) { - [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; - } if (loadObject.pageDataFromCache || loadObject.pageType) { @@ -368,6 +363,11 @@ // Sets the response info map loadObject.responseInfoMap = [jsonDictionary dict:KeyResponseInfo]; + // Update the session timer on a good response. + if (loadObject.extendsAppSession) { + [[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer]; + } + // Dismiss any top alerts that server wants us to dismiss [[MVMCoreAlertHandler sharedAlertHandler] hidePersistentTopAlertViewOfType:[loadObject.responseInfoMap string:@"disableType"]]; From 44b7034b49999da414cee0c814527906742844ad Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 14 Aug 2018 15:43:31 -0400 Subject: [PATCH 10/11] boudning fix --- MVMCore/MVMCore/Categories/UILabel+MFCustom.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m index d41be5a..e485a53 100644 --- a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m +++ b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m @@ -51,7 +51,7 @@ NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.bounds.size]; // commenting out for after ios 10. keep this commented code for future references and monitoring - //textContainer.lineFragmentPadding = 0; + textContainer.lineFragmentPadding = 0; textContainer.lineBreakMode = self.lineBreakMode; From 7d395ee36fe3c21d35f373c83c9e82e3a0ada1d6 Mon Sep 17 00:00:00 2001 From: "Pan, Xinlei (Ryan)" Date: Tue, 14 Aug 2018 16:24:15 -0400 Subject: [PATCH 11/11] remove comment --- MVMCore/MVMCore/Categories/UILabel+MFCustom.m | 1 - 1 file changed, 1 deletion(-) diff --git a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m index e485a53..f1575b9 100644 --- a/MVMCore/MVMCore/Categories/UILabel+MFCustom.m +++ b/MVMCore/MVMCore/Categories/UILabel+MFCustom.m @@ -50,7 +50,6 @@ [textStorage addLayoutManager:layoutManager]; NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.bounds.size]; - // commenting out for after ios 10. keep this commented code for future references and monitoring textContainer.lineFragmentPadding = 0; textContainer.lineBreakMode = self.lineBreakMode;