// // Created by Katarzyna Kalinowska-Górska on 2019-10-14. // #include "AniTOSAcceptPopupView.h" #include "AniTouchInterceptingLayer.h" #include "AniSimpleButton.h" #include "AniScalingUtils.h" #include "AniParentalGateView.h" #include "AniMiscUtils.h" #include "AniStrings.h" #include AniTOSAcceptPopupView * AniTOSAcceptPopupView::create(std::function onAcceptCallback){ AniTOSAcceptPopupView * view = new (std::nothrow) AniTOSAcceptPopupView(); if(view && view->init(onAcceptCallback)) { view->autorelease(); return view; } CC_SAFE_DELETE(view); return nullptr; } bool AniTOSAcceptPopupView::init(std::function onAcceptCallback){ if(!cocos2d::LayerColor::initWithColor(cocos2d::Color4B(0, 0, 0, 220))){ return false; } _onAcceptCallback = onAcceptCallback; setupAppearance(); return true; } void AniTOSAcceptPopupView::setupAppearance(){ auto popup = cocos2d::Sprite::create("graphics/tos_popup/accept_popup.png"); //TODO hard-coded stirng auto wholeSize = cocos2d::Director::getInstance()->getWinSize(); setContentSize(wholeSize); addChild(popup); popup->setPosition(cocos2d::Vec2(wholeSize.width/2, wholeSize.height/2)); auto menuItemColor = cocos2d::Color3B(40, 80, 160); cocos2d::MenuItemFont::setFontSize(120*AniScalingUtils::getScaleForFont()); //TODO MAGIC NUMBER #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) cocos2d::MenuItemFont::setFontName("ComicSansMS-Bold"); #else cocos2d::MenuItemFont::setFontName("fonts/ComicSansMSBold.ttf"); #endif // auto paddingBottom = 40*AniScalingUtils::scaleAspectFillToDesignIpadProSize(); auto menuPadding = 40*AniScalingUtils::scaleAspectFillToDesignIpadProSize();//TODO magic number auto menuItemAbout = cocos2d::MenuItemFont::create("Terms of Use", CC_CALLBACK_1(AniTOSAcceptPopupView::aboutMenuButtonTapped, this)); auto menuItemPrivacyPolicy = cocos2d::MenuItemFont::create("Privacy Policy", CC_CALLBACK_1(AniTOSAcceptPopupView::privacyPolicyMenuButtonTapped, this)); auto menuCenter = cocos2d::Menu::create(menuItemAbout,menuItemPrivacyPolicy, NULL); menuCenter->setContentSize(cocos2d::Size(MAX(menuItemAbout->getBoundingBox().size.width, menuItemPrivacyPolicy->getBoundingBox().size.width), menuItemAbout->getBoundingBox().size.height + menuItemPrivacyPolicy->getBoundingBox().size.height + 3*menuPadding)); menuCenter->setColor(menuItemColor); menuCenter->alignItemsVerticallyWithPadding(menuPadding); addChild(menuCenter); auto menuPaddingLEft = 60*AniScalingUtils::scaleAspectFillToDesignIpadProSize();//TODO magic number; //mod for food app menu menuCenter->setPosition(wholeSize.width/2 + menuPaddingLEft, wholeSize.height/2); auto buttonAccept = AniSimpleButton::create(); auto acceptButtonTexturePath = "graphics/tos_popup/accept_button.png"; buttonAccept->loadTextures(acceptButtonTexturePath, acceptButtonTexturePath, acceptButtonTexturePath); addChild(buttonAccept); buttonAccept->setAnchorPoint(cocos2d::Vec2(0.5, 1)); buttonAccept->cocos2d::Node::setPosition(wholeSize.width/2+menuPaddingLEft, menuCenter->getPositionY() - menuCenter->getContentSize().height/2 - menuPadding); buttonAccept->setOnTouchEndedCallback([&](std::string name, cocos2d::ui::Widget::TouchEventType eventType){ _onAcceptCallback(); AniMiscUtils::hideAndRemoveView(this, true); // presentParentalGate([&](){ // hideParentalGate(); // _onAcceptCallback(); // AniMiscUtils::hideAndRemoveView(this, true); // }, [&](){ // hideParentalGate(); // }); }); } void AniTOSAcceptPopupView::aboutMenuButtonTapped(cocos2d::Ref* pSender){ presentParentalGate([&](){ hideParentalGate(); //cocos2d::Application::getInstance()->openURL(AniStrings::LINK_TERMS_OF_SERVICE); cocos2d::Application::getInstance()->openURL("https://www.wattsenglish.com/steve-and-maggie-halloween/terms-of-use.html"); }, [&](){ hideParentalGate(); }); } void AniTOSAcceptPopupView::privacyPolicyMenuButtonTapped(cocos2d::Ref* pSender){ presentParentalGate([&](){ hideParentalGate(); cocos2d::Application::getInstance()->openURL("https://www.wattsenglish.com/steve-and-maggie-halloween/principles-of-personal-data-processing.html"); // cocos2d::Application::getInstance()->openURL(AniStrings::LINK_PRIVACY_POLICY); }, [&](){ hideParentalGate(); }); }