/* * helper.cpp, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ #include "StdInc.h" #include "helper.h" #include "../lib/CConfigHandler.h" #include #include #ifdef VCMI_ANDROID #include #include #endif #ifdef VCMI_MOBILE static QScrollerProperties generateScrollerProperties() { QScrollerProperties result; result.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor, 0.25); result.setScrollMetric(QScrollerProperties::OvershootDragDistanceFactor, 0.25); result.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QScrollerProperties::OvershootAlwaysOff); return result; } #endif namespace Helper { void loadSettings() { settings.init("config/settings.json", "vcmi:settings"); persistentStorage.init("config/persistentStorage.json", ""); } void enableScrollBySwiping(QObject * scrollTarget) { #ifdef VCMI_MOBILE QScroller::grabGesture(scrollTarget, QScroller::LeftMouseButtonGesture); QScroller * scroller = QScroller::scroller(scrollTarget); scroller->setScrollerProperties(generateScrollerProperties()); #endif } QString getRealPath(QString path) { #ifdef VCMI_ANDROID if(path.contains("content://", Qt::CaseInsensitive)) { auto str = QAndroidJniObject::fromString(path); return QAndroidJniObject::callStaticObjectMethod("eu/vcmi/vcmi/util/FileUtil", "getFilenameFromUri", "(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;", str.object(), QtAndroid::androidContext().object()).toString(); } else return path; #else return path; #endif } void performNativeCopy(QString src, QString dst) { #ifdef VCMI_ANDROID auto srcStr = QAndroidJniObject::fromString(src); auto dstStr = QAndroidJniObject::fromString(dst); QAndroidJniObject::callStaticObjectMethod("eu/vcmi/vcmi/util/FileUtil", "copyFileFromUri", "(Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)V", srcStr.object(), dstStr.object(), QtAndroid::androidContext().object()); #else QFile::copy(src, dst); #endif } }