Removed Lite version and Promo banners for all platforms.

This commit is contained in:
Alex Zolotarev 2015-01-16 17:41:58 +03:00
parent 72f4090f28
commit 56527abd65
148 changed files with 302 additions and 5650 deletions

View file

@ -126,6 +126,43 @@
<action android:name="com.mapswithme.maps.api.request"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="application/vnd.google-earth.kmz"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="application/vnd.google-earth.kml+xml"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.kmz"
android:scheme="file"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.kml"
android:scheme="file"/>
</intent-filter>
</activity>
<activity

View file

@ -32,7 +32,6 @@ android {
compileSdkVersion propTargetSdkVersion.toInteger()
buildToolsVersion propBuildToolsVersion
defaultConfig {
// Default package name is taken from the manifest and should be com.mapswithme.maps
versionCode propVersionCode.toInteger()
@ -44,188 +43,83 @@ android {
sourceSets.main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
res.srcDirs = ['res', 'res-flurry']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
productFlavors {
googlePro {
google {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.googlePro.setRoot('flavors/pro')
android.sourceSets.googlePro.assets.srcDirs = ['flavors/guides-assets', 'flavors/pro/assets']
android.sourceSets.google.assets.srcDirs = ['flavors/guides-assets']
}
googleLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=com.mapswithme.maps"'
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.googleLite.setRoot('flavors/lite')
android.sourceSets.googleLite.assets.srcDirs = ['flavors/guides-assets']
}
samsungPro {
samsung {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"samsungapps://ProductDetail/com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"samsungapps://ProductDetail/com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"samsung@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.samsungPro.setRoot('flavors/pro')
android.sourceSets.samsungPro.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.samsung.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
samsungLite {
applicationId 'com.mapswithme.maps.samsung' // historically different id for samsung lite version
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"samsungapps://ProductDetail/com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"samsungapps://ProductDetail/com.mapswithme.maps.samsung"'
buildConfigField 'String', 'SUPPORT_MAIL', '"samsung@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.samsungLite.setRoot('flavors/lite')
android.sourceSets.samsungLite.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
amazonPro {
amazon {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"amzn://apps/android?p=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"amzn://apps/android?p=com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"amazon@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.amazonPro.setRoot('flavors/pro')
// Do not include guides assets for Amazon, they don't like GP apps ads
android.sourceSets.amazonPro.assets.srcDirs = ['flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.amazon.assets.srcDirs = ['flavors/mwm-ttf-assets']
}
amazonLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"amzn://apps/android?p=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"amzn://apps/android?p=com.mapswithme.maps"'
buildConfigField 'String', 'SUPPORT_MAIL', '"amazon@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.amazonLite.setRoot('flavors/lite')
// Do not include guides assets for Amazon, they don't like GP apps ads
android.sourceSets.amazonLite.assets.srcDirs = ['flavors/mwm-ttf-assets']
}
androidpitPro {
androidpit {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"appcenter://package/com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"appcenter://package/com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.androidpitPro.setRoot('flavors/pro')
android.sourceSets.androidpitPro.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.androidpit.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
androidpitLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"appcenter://package/com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"appcenter://package/com.mapswithme.maps"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.androidpitLite.setRoot('flavors/lite')
android.sourceSets.androidpitLite.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
slidemePro {
slideme {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"sam://details?bundleId=5eed1b74-8c8b-11e2-8af8-1670ef61174f"'
buildConfigField 'String', 'REVIEW_URL', '"sam://details?bundleId=5eed1b74-8c8b-11e2-8af8-1670ef61174f"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.slidemePro.setRoot('flavors/pro')
android.sourceSets.slidemePro.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.slideme.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
slidemeLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"sam://details?bundleId=5eed1b74-8c8b-11e2-8af8-1670ef61174f"'
buildConfigField 'String', 'REVIEW_URL', '"sam://details?bundleId=943fe9dc-9799-11e2-8af8-1670ef61174f"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.slidemeLite.setRoot('flavors/lite')
android.sourceSets.slidemeLite.assets.srcDirs = ['flavors/guides-assets']
}
yandexPro {
yandex {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"yastore://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"yastore://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.yandexPro.setRoot('flavors/pro')
android.sourceSets.yandexPro.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets', 'flavors/pro/assets']
}
yandexLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"yastore://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"yastore://details?id=com.mapswithme.maps"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.yandexLite.setRoot('flavors/lite')
android.sourceSets.yandexLite.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
yotaLite {
applicationId 'com.mapswithme.maps'
buildConfigField 'boolean', 'IS_PRO', 'false'
buildConfigField 'String', 'PRO_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=com.mapswithme.maps"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'false'
android.sourceSets.yotaLite.setRoot('flavors/lite')
android.sourceSets.yotaLite.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
android.sourceSets.yandex.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
prestigio {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=com.mapswithme.maps.pro"'
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'true'
android.sourceSets.prestigio.setRoot('flavors/pro')
android.sourceSets.prestigio.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.prestigio.assets.srcDirs = ['flavors/guides-assets', 'flavors/mwm-ttf-assets']
}
cipherlab {
CipherLab {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"http://maps.me"'
buildConfigField 'String', 'REVIEW_URL', '"http://maps.me"'
buildConfigField 'String', 'SUPPORT_MAIL', '"support@maps.me"'
buildConfigField 'String', 'REVIEW_URL', '"http://maps.me/"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'true'
android.sourceSets.cipherlab.setRoot('flavors/pro')
android.sourceSets.cipherlab.assets.srcDirs = ['flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.CipherLab.assets.srcDirs = ['flavors/mwm-ttf-assets']
}
xiaomi {
applicationId 'com.mapswithme.maps.pro'
buildConfigField 'boolean', 'IS_PRO', 'true'
buildConfigField 'String', 'PRO_URL', '"http://maps.me"'
buildConfigField 'String', 'REVIEW_URL', '"http://maps.me"'
buildConfigField 'String', 'SUPPORT_MAIL', '"support@maps.me"'
buildConfigField 'String', 'REVIEW_URL', '"http://maps.me/"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@maps.me"'
buildConfigField 'boolean', 'IS_PREINSTALLED', 'true'
android.sourceSets.xiaomi.setRoot('flavors/pro')
android.sourceSets.xiaomi.assets.srcDirs = ['flavors/mwm-ttf-assets', 'flavors/pro/assets']
android.sourceSets.xiaomi.assets.srcDirs = ['flavors/mwm-ttf-assets']
}
}

View file

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_bottom_toolbar"
android:orientation="vertical">
<TextView
android:id="@+id/btn_buy_pro"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_panel_height"
android:background="?attr/clickableBackground"
android:drawableLeft="@drawable/ic_menu_buy_pro"
android:drawablePadding="@dimen/margin_small"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="@string/become_a_pro"
android:textColor="@color/text_menu"/>
<View
style="@style/DrawerSeparatorMediumPadded"/>
<TextView
android:id="@+id/btn_download_maps"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_panel_height"
android:background="?attr/clickableBackground"
android:drawableLeft="@drawable/ic_menu_download"
android:drawablePadding="@dimen/margin_small"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="@string/download_maps"
android:textColor="@color/text_menu"/>
<View
style="@style/DrawerSeparatorMediumPadded"/>
<TextView
android:id="@+id/btn_settings"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_panel_height"
android:background="?attr/clickableBackground"
android:drawableLeft="@drawable/ic_menu_settings"
android:drawablePadding="@dimen/margin_small"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="@string/settings_and_more"
android:textColor="@color/text_menu"/>
<View
style="@style/DrawerSeparatorMediumPadded"/>
<TextView
android:id="@+id/btn_share"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_panel_height"
android:background="?attr/clickableBackground"
android:drawableLeft="@drawable/ic_menu_send_my_location"
android:drawablePadding="@dimen/margin_small"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="@string/share_my_location"
android:textColor="@color/text_menu"/>
</LinearLayout>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources>
<string name="fb_app_id">272257082798521</string>
</resources>

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources>
<string name="mrgs_key">Hdl6YvzS3EK7PV4_MUaZcW68u6PmBNZn</string>
<string name="mrgs_id">149</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources>
<string name="flurry_app_key">GZZ684W5DV22GRH6D7Z3</string>
</resources>

View file

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<activity android:name="com.mapswithme.maps.DownloadResourcesActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="application/vnd.google-earth.kmz"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="application/vnd.google-earth.kml+xml"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.kmz"
android:scheme="file"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.kml"
android:scheme="file"/>
</intent-filter>
</activity>
</application>
</manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources>
<string name="advertiser_id">14130</string>
<string name="conversion_key">***REMOVED***</string>
</resources>

View file

@ -914,14 +914,6 @@ extern "C"
jniEnv->CallVoidMethod(*obj.get(), methodId, isSuccess, jni::ToJavaString(jniEnv, messageID), openDownloader);
}
void CallBuyProListener(shared_ptr<jobject> obj)
{
JNIEnv * jniEnv = jni::GetEnv();
const jmethodID methodId = jni::GetJavaMethodID(jniEnv, *obj.get(), "onBuyPro", "()V");
ASSERT(methodId, ());
jniEnv->CallVoidMethod(*obj.get(), methodId);
}
/// @name JNI EXPORTS
//@{
JNIEXPORT jstring JNICALL
@ -1372,12 +1364,6 @@ extern "C"
frm()->SetRouteBuildingListener(bind(&CallRoutingListener, jni::make_global_ref(listener), _1, _2, _3));
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_Framework_nativeSetBuyProListener(JNIEnv * env, jobject thiz, jobject listener)
{
frm()->SetBuyProListener(bind(&CallBuyProListener, jni::make_global_ref(listener)));
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_Framework_downloadCountry(JNIEnv * env, jobject thiz, jobject idx)
{

View file

@ -24,10 +24,10 @@ extern "C"
Java_com_mapswithme_maps_MWMApplication_nativeInit(
JNIEnv * env, jobject thiz,
jstring apkPath, jstring storagePath, jstring tmpPath, jstring obbGooglePath,
jstring flavorName, jstring buildType, jboolean isPro, jboolean isYota, jboolean isTablet)
jstring flavorName, jstring buildType, jboolean isYota, jboolean isTablet)
{
android::Platform::Instance().Initialize(
env, apkPath, storagePath, tmpPath, obbGooglePath, flavorName, buildType, isPro, isYota, isTablet);
env, apkPath, storagePath, tmpPath, obbGooglePath, flavorName, buildType, isYota, isTablet);
LOG(LDEBUG, ("Creating android::Framework instance ..."));

View file

@ -66,7 +66,7 @@ namespace android
jstring apkPath, jstring storagePath,
jstring tmpPath, jstring obbGooglePath,
jstring flavorName, jstring buildType,
bool isPro, bool isYota, bool isTablet)
bool isYota, bool isTablet)
{
string const flavor = jni::ToNativeString(env, flavorName);
string const build = jni::ToNativeString(env, buildType);
@ -102,11 +102,6 @@ namespace android
m_tmpDir = jni::ToNativeString(env, tmpPath);
m_flags[PRO_URL] = isPro;
m_flags[HAS_BOOKMARKS] = isPro || isYota;
m_flags[HAS_ROTATION] = isPro;
m_flags[HAS_ROUTING] = isPro;
string const obbPath = jni::ToNativeString(env, obbGooglePath);
Platform::FilesList files;
GetFilesByExt(obbPath, ".obb", files);

View file

@ -14,7 +14,7 @@ namespace android
jstring apkPath, jstring storagePath,
jstring tmpPath, jstring obbGooglePath,
jstring flavorName, jstring buildType,
bool isPro, bool isYota, bool isTablet);
bool isYota, bool isTablet);
void OnExternalStorageStatusChanged(bool isAvailable);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/wv__banner"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageButton
android:id="@+id/btn__close"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/margin_small"
android:layout_marginTop="@dimen/margin_small"
android:background="@null"
android:src="@drawable/close"/>
</RelativeLayout>

View file

@ -4,19 +4,6 @@
<!-- Language: ar -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">يمكنك التصفح بشكل أسهل مع الإصدار الكامل من MAPS.ME الذي يتميز بامكانية البحث بدون الاتصال مع الانترنت. احصل عليه الآن!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">قم بالترقية إلى MAPS.ME Pro مجانا اليوم!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro مجانا اليوم. أخبر أصدقاءك!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">يمكنك الترقية إلى MAPS.ME Pro مجانا اليوم. لا تفوت فرصتك!</string>
<string name="free_pro_version_share_message">أفضل خرائط دون اتصال MAPS.ME مجانا اليوم. قم بتنزيله الآن وأخبر أصدقائك!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">احصل على خرائط MAPS.ME في وضع غير متصل بالإنترنت مجانا الآن</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">مرحبا! هل تعلم أنه يمكنك اليوم تنزيل خرائط MAPS.ME في وضع غير متصل بالإنترنت مجانا؟ مع هذا التطبيق لن تضل الطريق أبداً أثناء السفر. تكلفتها عادة 5 دولارات و تقدم لك خرائط في وضع غير متصل بالإنترنت لجميع دول العالم مع إمكانية البحث، وإضافة علامات مرجعية وإعادة التوجيه. لا تفوت فرصتك!</string>
<!-- About button text (should be short) -->
<string name="about">نبذة عنا</string>
<!-- Button text (should be short) -->
@ -86,8 +73,6 @@
<string name="report_an_issue">الإبلاغ عن مشكلة</string>
<!-- View and button titles for accessibility -->
<string name="search">البحث</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">البحث متوافر فقط في الإصدار الكامل من MAPS.ME. احصل عليه الآن!</string>
<!-- Search box placeholder text -->
<string name="search_map">ابحث في الخريطة</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -201,8 +186,6 @@
<string name="wait_several_minutes">يمكن أن تستغرق هذه العملية عدة دقائق.\nالرجاء الانتظار…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">مرئي</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">الإشارات المرجعية متاحة فقط في الإصدار الكامل من MAPS.ME. احصل عليه الآن!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">تم تعطيل خاصية نظام تحديد المواقع العالمي. الرجاء تفعيله في الاعدادات.</string>
<!-- Measurement units title in settings activity -->
@ -296,16 +279,6 @@
<string name="message">رسالة</string>
<!-- Share by email button text -->
<string name="email">البريد الالكتروني</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">تفعيل رمز الترويج</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">أدخل رمز الترويج</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">تم تفعيل رمز الترويج!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">خطأ في الاتصال. الرجاء المحاولة لاحقا.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">رمز الترويج غير صحيح. الرجاء إعادة المحاولة.</string>
<!-- Copy Link -->
<string name="copy_link">نسخ الرابط</string>
<!-- Text for the button that returns to caller application -->
@ -450,8 +423,6 @@
<string name="downloader_status_outdated">تحديث</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">فشل</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">تحديد المسار متاح فقط من خلال الإصدار الكامل لتطبيق MAPS.ME. احصل عليه الآن!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">الموقع الحالي غير مُعَرّف. يرجى تحديد موقع لإنشاء مسار.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: cs -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Získej více možností s plnou verzí MAPS.ME, zahrnující offline vyhledávání. Nainstaluj si ji nyní!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Proveďte dnes zdarma upgrade na MAPS.ME Pro!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro jsou dnes zdarma. Řekněte to všem kamarádům!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Dnes můžete zdarma provést upgrade na MAPS.ME Pro. Nezmeškejte svou šanci!</string>
<string name="free_pro_version_share_message">Nejlepší offline mapy MAPS.ME jsou dnes zdarma. Stáhni si ji nyní a dej vědět kamarádům!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Získejte v režimu offline mapy MAPS.ME nyní zdarma</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hej! Víte, že dnes si můžete stáhnout v režimu offline mapy MAPS.ME zdarma? Díky této aplikaci se na cestách nikdy neztratíte. Obvyklá cena je 5 dolarů a poskytuje off-line mapy všech zemí světa s vyhledáváním, záložkami a směrováním. Nenechte si ujít příležitost!</string>
<!-- About button text (should be short) -->
<string name="about">O aplikaci</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Nahlásit chybu</string>
<!-- View and button titles for accessibility -->
<string name="search">Hledat</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Vyhledávání je dostupné jen v placené verzi MAPS.ME. Stáhni si ji nyní!</string>
<!-- Search box placeholder text -->
<string name="search_map">Prohledat mapu</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -198,8 +183,6 @@
<string name="wait_several_minutes">Tato akce může trvat několik minut.\nProsím čekej…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Viditelné</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Záložky jsou dostupné jen v plné verzi MAPS.ME. Chceš ji nyní stáhnout?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">Navigace GPS deaktivována. Prosím, povol ji v Nastavení.</string>
<!-- Measurement units title in settings activity -->
@ -293,16 +276,6 @@
<string name="message">Zpráva</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Uplatnit kód</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Zadej promo kód</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Kód byl úspěšně přijat!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Chyba připojení. Opakuj akci později.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Nesprávný kód! Opakuj zadání.</string>
<!-- Copy Link -->
<string name="copy_link">Zkopírovat odkaz</string>
<!-- Text for the button that returns to caller application -->
@ -453,8 +426,6 @@
<string name="downloader_status_outdated">Aktualizace</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Selhalo</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Směrování je k dispozici pouze v plné verzi MAPS.ME. Získejte ji hned teď!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Aktuální poloha nebyla zatím zjištěna. Chceš-li naplánovat trasu, zadej prosím umístění.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: da -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Naviger lettere med den fulde version af MAPS.ME med bl.a. offline søgning. Få det nu!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Opgradér til MAPS.ME Pro gratis i dag!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro er gratis i dag. Fortæl det til dine venner!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Du kan opgradér til MAPS.ME Pro gratis i dag. Gå ikke glip af chancen!</string>
<string name="free_pro_version_share_message">Bedste offline kort MAPS.ME er gratis i dag. Download nu og fortæl dine venner om det!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Nu kan du få gratis offline-kort fra MAPS.ME</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hej! Vidste du, at du i dag kan downloade offline-kort fra MAPS.ME helt gratis? Med denne app vil du aldrig mere fare vild på dine rejser. Det koster normalt $5 og tilbyder offline-kort til alle verdens lande med søgning, bogmærker og routing. Gå ikke glip af denne chance!</string>
<!-- About button text (should be short) -->
<string name="about">Om app</string>
<!-- Button text (should be short) -->
@ -84,8 +71,6 @@
<string name="report_an_issue">Rapporter et problem</string>
<!-- View and button titles for accessibility -->
<string name="search">Søg</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Søgefunktionen er kun tilgængelig i den fulde version af MAPS.ME. Få den nu!</string>
<!-- Search box placeholder text -->
<string name="search_map">Søg kort</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -199,8 +184,6 @@
<string name="wait_several_minutes">Dette kan tage flere minutter.\nVent venligst…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Synligt</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Bogmærker er kun tilgængelige i den fulde version af MAPS.ME. Få det nu!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS er deaktiveret. Aktiver venligst i Indstillinger.</string>
<!-- Measurement units title in settings activity -->
@ -294,16 +277,6 @@
<string name="message">Besked</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Værdikode aktivering</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Indtast værdikode</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Værdikoden er aktiveret!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Forbindelses fejl. Prøv venligst igen senere.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Forkert værdikode. Prøv venligst igen.</string>
<!-- Copy Link -->
<string name="copy_link">Kopier link</string>
<!-- Text for the button that returns to caller application -->
@ -446,8 +419,6 @@
<string name="downloader_status_outdated">Opdater</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Mislykkedes</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Oprettelse af ruter er kun tilgængelig i den fulde version af MAPS.ME. Få den nu!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Den nuværende placering er ikke defineret. Venligst angiv placering for at oprette en rute.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: de -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Mehr Möglichkeiten in der vollen Version MAPS.ME mit Offline-Suche. Jetzt herunterladen!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Heute kostenlos auf MAPS.ME Pro upgraden!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro gibt es heute gratis. Erzählen Sie es Ihren Freunden!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Sie können heute kostenlos auf MAPS.ME Pro upgraden. Verpassen Sie nicht Ihre Chance!</string>
<string name="free_pro_version_share_message">Die besten Offline-Karten MAPS.ME sind heute kostenlos. Jetzt runterladen &amp; Freunde informieren!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Holen Sie sich jetzt kostenlos die MAPS.ME Offline-Karten</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hey! Wussten Sie schon, dass Sie heute die MAPS.ME Offline-Karten kostenlos herunterladen können? Mit dieser App werden Sie sich auf Reisen niemals verirren. Normalerweise kostet sie 5 $ und bietet Offline-Karten aller Länder der Welt mit Suchfunktion, Bookmarks und Routenplanung. Verpassen Sie nicht Ihre Chance!</string>
<!-- About button text (should be short) -->
<string name="about">Über Karten</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Problem melden</string>
<!-- View and button titles for accessibility -->
<string name="search">Suche</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Die Suche ist nur in der Pro Version vorhanden. Möchten Sie sie jetzt installieren?</string>
<!-- Search box placeholder text -->
<string name="search_map">Auf der Karte suchen</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -194,8 +179,6 @@
<string name="wait_several_minutes">Dies kann einige Minuten in Anspruch nehmen.\nBitte warten…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Sichtbar</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Lesezeichen stehen in der Vollversion von MAPS.ME zur Verfügung. Jetzt sofort besorgen?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS ist deaktiviert. Schalten Sie sie bitte ein, um das Programm bequem nutzen zu können.</string>
<!-- Measurement units title in settings activity -->
@ -287,16 +270,6 @@
<string name="message">Nachricht</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Aktivierung des Aktionscodes</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Geben Sie den Aktionscode ein</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Aktionscode wurde aktiviert!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Verbindungsfehler: Bitte versuchen Sie es später erneut.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Ungültiger Aktionscode. Bitte versuchen Sie es nochmals.</string>
<!-- Copy Link -->
<string name="copy_link">Link kopieren</string>
<!-- Text for the button that returns to caller application -->
@ -441,8 +414,6 @@
<string name="downloader_status_outdated">Aktualisiere</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Fehlgeschlagen</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Routing ist nur in der Vollversion von MAPS.ME verfügbar. Jetzt holen!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Der aktuelle Standort ist nicht definiert. Bitte geben Sie den Standort ein, um eine Route zu erstellen.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: es -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Mas facil navegar con la version completa MAPS.ME con el buscador fuera de la Internet. Bajalo ya!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">¡Actualízate a MAPS.ME Pro gratis hoy!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro es gratis hoy. ¡Díselo a tus amigos!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Hoy puedes actualizarte a MAPS.ME Pro gratis. ¡No dejes pasar la oportunidad!</string>
<string name="free_pro_version_share_message">¡Hoy los mejores mapas sin conexión de MAPS.ME son gratis! Descárgalo ahora y dilo a tus amigos .</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Obtén ahora mapas sin conexión de MAPS.ME gratis</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">¡Ey! ¿Sabes que hoy puedes descargar mapas sin conexión de MAPS.ME gratis? Con esta aplicación nunca te perderás al viajar. Normalmente cuesta 5 $ y ofrece mapas sin conexión de todos los países del mundo con búsquedas, favoritos e itinerarios. ¡No dejes pasar la oportunidad!</string>
<!-- About button text (should be short) -->
<string name="about">Acerca de</string>
<!-- Button text (should be short) -->
@ -77,8 +64,6 @@
<string name="report_an_issue">Reportar un problema</string>
<!-- View and button titles for accessibility -->
<string name="search">Buscar</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Buscar está accesible solo en la versión MapWithMe Pro. ¿Instalar ahora mismo?</string>
<!-- Search box placeholder text -->
<string name="search_map">Buscar en el mapa</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -190,8 +175,6 @@
<string name="move_maps">¿Mover mapas?</string>
<!-- Ask to wait user several minutes (some long process in modal dialog). -->
<string name="wait_several_minutes">Esto podría tardar varios minutos.\nPor favor, espera…</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">La opción de marcadores está disponible en la versión completa de MAPS.ME. ¿La quieres ya?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">El GPS está inhabilitado. Por favor, activelo en los ajustes.</string>
<!-- Measurement units title in settings activity -->
@ -427,8 +410,6 @@
<string name="downloader_status_outdated">Actualizar</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Fallo</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">La planificación de la ruta solo está disponible en la versión completa de MAPS.ME. ¡Consígala ya!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">La ubicación actual no está definida. Por favor, especifique la ubicación para crear la ruta.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: fr -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Naviguez plus facilement avec la version complète de MAPS.ME proposant la recherche hors ligne. Obtenez-la maintenant !</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Passez à MAPS.ME Pro aujourd\&#39;hui, gratuitement !</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro est gratuit aujourd\&#39;hui. Dites-le à vos amis !</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Aujourd\&#39;hui, vous pouvez passer à MAPS.ME Pro gratuitement. Ne ratez pas cette occasion !</string>
<string name="free_pro_version_share_message">Les meilleures cartes hors ligne de MAPS.ME sont gratuites aujourd\&#39;hui. Téléchargez-le maintenant et dites-le à vos amis !</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Téléchargez les cartes hors ligne de MAPS.ME gratuitement</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Savez-vous que les cartes hors lignes de MAPS.ME sont téléchargeables gratuitement, aujourd\&#39;hui ? Grâce à cette appli, vous voyagerez sans jamais vous perdre. Elle coûte normalement 4 euros, donne accès aux cartes hors ligne de tous les pays du monde, vous permet d\&#39;enregistrer des favoris et est dotée d\&#39;un moteur de recherche et d\&#39;une fonction itinéraire. Ne ratez pas cette occasion !</string>
<!-- About button text (should be short) -->
<string name="about">À propos de</string>
<!-- Button text (should be short) -->
@ -85,8 +72,6 @@
<string name="report_an_issue">Signaler un problème</string>
<!-- View and button titles for accessibility -->
<string name="search">Recherche</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">La recherche n\&#39;est disponible que dans la version complète de MAPS.ME. Obtenez-la maintenant !</string>
<!-- Search box placeholder text -->
<string name="search_map">Rechercher sur la carte</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -202,8 +187,6 @@
<string name="wait_several_minutes">Ceci peut prendre plusieurs minutes.\nVeuillez patienter…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Visible</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Les signets ne sont disponibles que dans la version complète de MAPS.ME. Obtenez-la maintenant !</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">Le GPS est désactivé. Veuillez l\&#39;activer dans les Paramètres.</string>
<!-- Measurement units title in settings activity -->
@ -297,16 +280,6 @@
<string name="message">Message</string>
<!-- Share by email button text -->
<string name="email">Courriel</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Activation du code de promotion</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Saisir le code de promotion</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Le code de promotion est activé !</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Erreur de connexion. Veuillez ressayer ultérieurement.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Code de promotion invalide. Veuillez ressayer.</string>
<!-- Copy Link -->
<string name="copy_link">Copier le lien</string>
<!-- Text for the button that returns to caller application -->
@ -457,8 +430,6 @@
<string name="downloader_status_outdated">Mettre à jour</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">A échoué</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">L\&#39;itinéraire est uniquement disponible dans la version complète de MAPS.ME. Téléchargez-la dès maintenant !</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">L\&#39;emplacement actuel n\&#39;est pas défini. Veuillez préciser l\&#39;emplacement pour créer l\&#39;itinéraire.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: hu -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">További lehetőségek a MAPS.ME teljes verziójában. Töltse le most!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Ma ingyen frissítheted a MAPS.ME Pro!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">A MAPS.ME Pro ma ingyenes. Mondd el a barátaidnak!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Ma ingyen frissítheted a MAPS.ME Pro. Ne szalaszd el az esélyt!</string>
<string name="free_pro_version_share_message">A legjobb MAPS.ME offline térképek ma ingyenesek. Töltsd le most és meséld el barátaidnak!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Szerezze meg az ingyenes offline MAPS.ME-t</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hé! Tudtad, hogy ma letöltheted az offline MAPS.ME-t ingyen? Ezzel az alkalmazással sosem fogsz elveszni utazás közben. Általában 5 dollárba kerül és offline térképeket nyújt az összes országból, ahol keresel vele, könyvjelzőket és útvonaltervezést ad. Ne hagyd ki ezt a lehetőséget!</string>
<!-- About button text (should be short) -->
<string name="about">A programról</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Hiba jelentése</string>
<!-- View and button titles for accessibility -->
<string name="search">Keresés</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Keresés csak a MAPS.ME teljes verziójában érhető el. Vásárolja meg most!</string>
<!-- Search box placeholder text -->
<string name="search_map">Keresés a térképen</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -198,8 +183,6 @@
<string name="wait_several_minutes">Ez több percig is eltarthat.\nKérjük várjon…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">látható</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Könyvjelzők csak a MAPS.ME teljes verziójában érhetőek el. Vásárolja meg most!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS kikapcsolva. Kérjük kapcsolja be a Beállítások között.</string>
<!-- Measurement units title in settings activity -->
@ -293,14 +276,6 @@
<string name="message">Üzenet</string>
<!-- Share by email button text -->
<string name="email">Email</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Akciós kód aktiváláshoz</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Promóciós kód aktiválva!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Kapcsolati hiba. Kérjük próbálja újra később.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Érvénytelen kód. Kérjük próbálja újra.</string>
<!-- Copy Link -->
<string name="copy_link">Hivatkozás másolása</string>
<!-- Text for the button that returns to caller application -->
@ -445,8 +420,6 @@
<string name="downloader_status_outdated">Frissítése</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Sikertelen</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Az útvonaltervezés csak a MAPS.ME teljes verziójában elérhető. Szerezd meg most!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Nem meghatározott a jelenlegi helyszín. Kérjük, határozza meg a helyszínt, hogy útvonal készülhessen.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: it -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Naviga più facilmente con la versione completa di MAPS.ME con la ricerca offline. Scaricala subito!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Fai l\&#39;upgrade a MAPS.ME Pro gratis oggi!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro è gratis oggi. Dillo ai tuoi amici!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Puoi fare l\&#39;upgrade a MAPS.ME Pro gratis oggi. Non perdere quest\&#39;opportunità!</string>
<string name="free_pro_version_share_message">Le migliori mappe offline di MAPS.ME Pro sono gratis oggi. Scaricala ora e dillo ai tuoi amici!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Ottieni le mappe offline di MAPS.me gratuitamente</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Ciao! Sai che oggi puoi scaricare e avere disponibili gratuitamente offline le mappe di MAPS.ME? Con questa app non ti perderai più quando sei in viaggio! Normalmente costa $5 e consente di accedere alle mappe offline di tutti i paesi del mondo con funzione di ricerca, preferiti e percorso. Non perderti questa opportunità!</string>
<!-- About button text (should be short) -->
<string name="about">Informazioni</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Segnala un problema</string>
<!-- View and button titles for accessibility -->
<string name="search">Cerca</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">La ricerca è disponibile solo nella versione completa di MAPS.ME. Scaricala subito!</string>
<!-- Search box placeholder text -->
<string name="search_map">Ricerca Mappa</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -194,8 +179,6 @@
<string name="wait_several_minutes">Questo può richiedere diversi minuti.\ncortesemente attendi…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Visibile</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">I segnalibri sono disponibili solo nella versione completa di MAPS.ME. Scaricalo subito!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">Il GPS è disabilitato. Cortesemente abilitalo nelle Impostazioni.</string>
<!-- Measurement units title in settings activity -->
@ -433,8 +416,6 @@
<string name="downloader_status_outdated">Aggiorna</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Fallito</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Il percorso è disponibile solo nella versione completa di MAPS.ME. Prendila ora!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">La posizione attuale non è definita. Specifica la posizione per creare il percorso.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: ja -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">MAPS.ME完全版ならさらに便利なオフライン検索が利用可能です。ぜひお買い求めください。</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">本日MAPS.ME Proに無料でアップグレード</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">本日MAPS.ME Proが無料です。お友達に教えてあげてください</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">本日MAPS.ME Proに無料でアップグレードできます。このチャンスをお見逃しなく</string>
<string name="free_pro_version_share_message">ベストオフライン地図のMAPS.MEが本日無料。今すぐダウンロードして友達に教えてあげましょう</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">本日オフライン地図のMAPS.MEを無料でゲット</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">こんにちは今日オフライン地図のMAPS.MEが無料でダウンロードできるのをご存じでしたかこのアプリがあれば、旅行中に道に迷うことがなくなります。通常$5で、世界中すべての国のオフライン地図を検索、お気に入り、ルート機能付きで提供します。このチャンスをお見逃しなく</string>
<!-- About button text (should be short) -->
<string name="about">情報</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">問題を報告</string>
<!-- View and button titles for accessibility -->
<string name="search">検索</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">検索機能はMAPS.ME完全版で利用可能です。ぜひお買い求めください。</string>
<!-- Search box placeholder text -->
<string name="search_map">マップを検索</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -196,8 +181,6 @@
<string name="wait_several_minutes">数分かかる場合があります。\nしばらくお待ち下さい…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">マップに表示</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">ブックマーク機能はMAPS.ME完全版で利用可能です。ぜひお買い求めください。</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS機能が無効です。端末の設定画面から有効にしてください。</string>
<!-- Measurement units title in settings activity -->
@ -433,8 +416,6 @@
<string name="downloader_status_outdated">を更新</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">失敗</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">ルート決定機能はMAPS.MEの完全版でのみ利用可能です。今すぐ入手しましょう</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">現在地が設定されていません。ルートを作成するには現在地を設定してください。</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: ko -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">오프라인 검색 기능의 MAPS.ME의 풀버젼으로 보다 쉽게 검색하세요. 지금 구매하세요!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">오늘 MAPS.ME Pro를 무료로 업그레이드하세요!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro가 오늘만 무료입니다. 친구들에게도 알리세요!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">오늘 하루 MAPS.ME Pro를 무료로 업그레이드할 수 있습니다. 기회를 놓치지 마세요!</string>
<string name="free_pro_version_share_message">최고의 오프라인 지도인 MAPS.ME가 오늘 무료입니다. 지금 다운로드하고 친구들에게 알리세요!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">지금 무료로 오프라인 지도인 MAPS.ME 가져 오기</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">안녕! 오늘 무료로 오프라인 지도인 MAPS.ME를 다운로드할 수 있다는 사실을 알고 있었나요? 이 앱으로, 여행시 길을 잃지 않을 거에요. 보통 5달러의 비용이 들며, 검색, 북마크 및 여정이 있는 모든 세계 국가의 오프라인 맵을 제공합니다. 이 기회를 놓치지 마세요!</string>
<!-- About button text (should be short) -->
<string name="about">소개</string>
<!-- Button text (should be short) -->
@ -78,8 +65,6 @@
<string name="report_an_issue">문제 보고하기</string>
<!-- View and button titles for accessibility -->
<string name="search">검색하기</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">검색은 MAPS.ME의 프로 버젼에만 제공됩니다. 지금 받으시겠습니까?</string>
<!-- Search box placeholder text -->
<string name="search_map">지도 검색하기</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -193,8 +178,6 @@
<string name="wait_several_minutes">이 작업은 수 분 소요될 수 있습니다.\n잠시 기다리세요…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">눈에 보이는</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">MAPS.ME의 정식 버전에서는 즐겨찾기를 이용하실 수 있습니다. 지금 바로 구입하시겠습니까?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS가 사용 중지되었습니다. 설정에서 이를 작동시켜 주시기 바랍니다.</string>
<!-- Measurement units title in settings activity -->
@ -424,8 +407,6 @@
<string name="downloader_status_outdated">업데이트</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">실패함</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">라우팅은 MAPS.ME의 정식 버전에서만 사용할 수 있습니다 지금 당장 얻으세요!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">현재 위치는 정의되지 않습니다. 경로를 생성할 위치를 지정하십시오.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: nl -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Navigeer makkelijker met MAPS.ME met offline zoeken. Instelleer het nu!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Upgrade vandaag gratis naar MAPS.ME Pro!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro is vandaag gratis. Vertel het aan je vrienden!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Je kunt vandaag gratis upgraden naar MAPS.ME Pro. Mis deze kans niet!</string>
<string name="free_pro_version_share_message">De beste offline kaarten van MAPS.ME zijn vandaag gratis. Download nu en vertel het je vrienden!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Verkrijg offline kaarten van MAPS.ME nu gratis</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hey! Weet u dat u vandaag de offline kaarten van MAPS.ME gratis kunt downloaden? Met deze app raakt u de weg nooit meer kwijt tijdens uw reis. Normaliter kost het $ 5,- en biedt offline kaarten voor alle landen op de wereld met zoekfunctie, favorieten en routeplanning. Mis uw kans niet!</string>
<!-- About button text (should be short) -->
<string name="about">Over</string>
<!-- Button text (should be short) -->
@ -77,8 +64,6 @@
<string name="report_an_issue">Meld een probleem</string>
<!-- View and button titles for accessibility -->
<string name="search">Zoeken</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Zoeken is alleen beschikbaar in de Pro versie van MAPS.ME. Wilt u hem nu installeren?</string>
<!-- Search box placeholder text -->
<string name="search_map">Zoek Kaart</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -191,8 +176,6 @@
<string name="wait_several_minutes">Dit kan enkele minuten duren.\nEven geduld…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Zichtbaar</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Bladwijzers zijn beschikbaar in de volledige versie van MAPS.ME. Wilt u die nu gelijk?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS is uitgeschakeld. Schakel ze in bij Instellingen.</string>
<!-- Measurement units title in settings activity -->
@ -426,8 +409,6 @@
<string name="downloader_uptodate_maps">Up-to-date</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Mislukt</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Route aanmaken is alleen beschikbaar in de volledige versie van MAPS.ME. Neem nu meteen!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Huidige locatie is niet gedefinieerd. Gelieve de locatie te specificeren om de route te creëren.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: pl -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Nawigacja staje się prostsza kiedy masz pełną wersję aplikację MAPS.ME wraz z wyszukiwaniem offline. Pobierz już teraz!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Dokonaj dziś darmowej aktualizacji do MAPS.ME Pro!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro jest dziś za darmo. Powiedz znajomym!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Możesz dziś dokonać darmowej aktualizacji do MAPS.ME Pro! Nie przegap okazji!</string>
<string name="free_pro_version_share_message">Najlepsze mapy offline MAPS.ME są dziś za darmo. Pobierz teraz i powiedz znajomym!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Pobierz mapy offline MAPS.ME za darmo</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hej! Czy wiesz, że dziś możesz pobrać mapy offline MAPS.ME bezpłatnie? Dzięki tej aplikacji nigdy nie zgubisz się podczas podróży. Kosztuje ona przeważnie 5 $ i oferuje mapy offline wszystkich krajów świata z możliwością ich przeszukiwania, dodawania oznaczeń i ustalania tras. Nie przegap szansy!</string>
<!-- About button text (should be short) -->
<string name="about">O programie</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Zgłoś błąd</string>
<!-- View and button titles for accessibility -->
<string name="search">Szukaj</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Szukanie jest dostępne tylko w pełnej wersji MAPS.ME. Pobierz już teraz!</string>
<!-- Search box placeholder text -->
<string name="search_map">Szukaj mapy</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -198,8 +183,6 @@
<string name="wait_several_minutes">TO może zająć kilka minut.\nProszę czekać…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Widoczne</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Zakładki są dostępne tylko w pełnej wersji MAPS.ME. Pobierz już teraz!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS jest wyłączony. Proszę włączyć go w ustawieniach.</string>
<!-- Measurement units title in settings activity -->
@ -293,16 +276,6 @@
<string name="message">Wiadomość</string>
<!-- Share by email button text -->
<string name="email">E-mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Aktywacja kodu promocyjnego</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Wprowadź kod promocyjny</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Kod promocyjny został aktywowany!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Błąd połączenia. Proszę spróbować ponownie później.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Błędny kod promocyjny. Spróbuj ponownie.</string>
<!-- Copy Link -->
<string name="copy_link">Kopiuj link</string>
<!-- Text for the button that returns to caller application -->
@ -447,8 +420,6 @@
<string name="downloader_status_outdated">Aktualizacja</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Nieudane</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Tworzenie trasy dostępne jest tylko w pełnej wersji aplikacji MAPS.ME. Pobierz pełną wersję, teraz!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Bieżąca lokalizacja nie została zdefiniowana. Aby utworzyć trasę, określ lokalizację.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: pt -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Navegue mais facilmente com a versão completa do MAPS.ME com a funcionalidade de procura offline. Obtenha-a agora mesmo!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Faça o upgrade para MAPS.ME Pro gratuitamente hoje!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">O MAPS.ME Pro é gratuito hoje. Diga aos seus amigos!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Pode fazer o upgrade para MAPS.ME Pro gratuitamente hoje. Não perca a oportunidade!</string>
<string name="free_pro_version_share_message">Os melhores mapas offline do MAPS.ME são hoje gratuitos. Descarregue e conte aos seus amigos!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Obtenha mapas offline do MAPS.ME agora, gratuitamente</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Oi! Sabia que hoje pode descarregar mapas offline do MAPS.ME gratuitamente? Com esta aplicação, nunca se perderá enquanto viaja. Normalmente custa $5 e proporciona mapas offline de todos os países do mundo, com pesquisas, marcadores e criação de trajetos. Não perca esta oportunidade!</string>
<!-- About button text (should be short) -->
<string name="about">Sobre</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Reelatar um problema</string>
<!-- View and button titles for accessibility -->
<string name="search">Procura</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">A procura apenas está disponível na versão completa do MAPS.ME. Obtenha-a agora mesmo!</string>
<!-- Search box placeholder text -->
<string name="search_map">Procurar mapa</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -194,8 +179,6 @@
<string name="wait_several_minutes">Isto pode demorar alguns minutos.\nPor favor aguarde…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Visível</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Os favoritos apenas estão disponíveis na versão completa de MAPS.ME. Obtenha-a agora mesmo!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">O GPS está desativado. Por favor ative-o nas Definições.</string>
<!-- Measurement units title in settings activity -->
@ -289,16 +272,6 @@
<string name="message">Mensagem</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Ativação do Código de Promoção</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Introduza o Código de Promoção</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">O código de promoção está ativado!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Erro de ligação. Por favor tente de novo mais tarde.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Código de promoção inválido. Por favor tente de novo.</string>
<!-- Copy Link -->
<string name="copy_link">Copiar hiperligação</string>
<!-- Text for the button that returns to caller application -->
@ -443,8 +416,6 @@
<string name="downloader_status_outdated">Atualizar</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Falhou</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">A criação de rota só está disponível na versão completa de MAPS.ME. Obtenha-a já!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">A localização atual não foi definida. Por favor especifique a localização para criar o trajeto.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: ru -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Больше возможностей в полной версии MAPS.ME с офлайн поиском. Установить ее сейчас?</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">MAPS.ME Pro сегодня бесплатные! Качайте!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro сегодня бесплатны. Расскажите друзьям!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Сегодня вы можете скачать MAPS.ME Pro бесплатно. Не упустите возможность!</string>
<string name="free_pro_version_share_message">Крутые офлайн-карты MAPS.ME сегодня бесплатные. Скачай сейчас и расскажи друзьям!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Офлайн-карты MAPS.ME сегодня бесплатные</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Привет! Хорошая новость: сегодня ты можешь бесплатно скачать офлайн-карты MAPS.ME! С этим приложением ты никогда не потеряешься в поездках. Обычно оно стоит $5! Кроме офлайновых карт всех стран там есть еще поиск, закладки и прокладывание маршрутов. Обязательно скачай!</string>
<!-- About button text (should be short) -->
<string name="about">О программе</string>
<!-- Button text (should be short) -->
@ -85,8 +72,6 @@
<string name="report_an_issue">Сообщить о проблеме</string>
<!-- View and button titles for accessibility -->
<string name="search">Поиск</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Поиск доступен только в полной версии MAPS.ME. Установите ее прямо сейчас!</string>
<!-- Search box placeholder text -->
<string name="search_map">Поиск на карте</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -202,8 +187,6 @@
<string name="wait_several_minutes">Это может занять несколько минут.\nПожалуйста, подождите…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Показывать на карте</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Метки доступны только в полной верии MAPS.ME. Установите ее прямо сейчас!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS-позиционирование выключено. Пожалуйста, включите его в настройках для удобного использования программы.</string>
<!-- Measurement units title in settings activity -->
@ -447,8 +430,6 @@
<string name="downloader_status_outdated">Обновить</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Ошибка</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Создание маршрутов возможно только в платной версии MAPS.ME. Скачай сейчас!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Невозможно проложить маршрут. Не определено текущее местоположение.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: sk -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Získajte viac možností s plnou verziou MAPS.ME, obsahujúcou offline vyhľadávanie. Nainštalujte si ju teraz!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Aktualizácia na MAPS.ME Pro zadarmo ešte dnes!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro sú dnes zadarmo. Dajte vedieť svojim priateľom!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Môžete aktualizovať na MAPS.ME Pro zadarmo ešte dnes. Nenechajte si ujsť svoju šancu!</string>
<string name="free_pro_version_share_message">Najlepšie offline mapy MAPS.ME sú dnes zadarmo. Stiahnite si teraz a povedzte to svojim priateľom!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Získať v režime offline mapy MAPS.ME teraz zadarmo</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hej! Viete, že dnes si môžete stiahnuť v režime offline mapy MAPS.ME zadarmo? Vďaka tejto aplikácii sa na cestách nikdy nestratíte. Zvyčajne stojí 5 dolárov a poskytuje off-line mapy všetkých krajín sveta s vyhľadávaním, záložkami a smerovaním. Nenechajte si ujsť túto príležitosť!</string>
<!-- About button text (should be short) -->
<string name="about">O aplikácii</string>
<!-- Button text (should be short) -->
@ -81,8 +68,6 @@
<string name="report_an_issue">Nahlásiť chybu</string>
<!-- View and button titles for accessibility -->
<string name="search">Hľadať</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Vyhľadávanie je dostupné len v platenej verzii MAPS.ME. Stiahnite si ju teraz!</string>
<!-- Search box placeholder text -->
<string name="search_map">Prehľadať mapu</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -198,8 +183,6 @@
<string name="wait_several_minutes">Táto akcia môže trvať niekoľko minút.\nProsím čakajte…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Viditeľné</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Záložky sú dostupné len v plnej verzii MAPS.ME. Chcete ju teraz stiahnuť?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">Navigácia GPS deaktivovaná. Prosím, povoľte ju v Nastaveniach.</string>
<!-- Measurement units title in settings activity -->
@ -291,16 +274,6 @@
<string name="message">Správa</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Aktivácia promo kódu</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Vložte promo kód</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Promo kód úspešne aktivovaný!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Aktivácia promo kódu zlyhala. Skúste neskôr prosím.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Promo kód je neplatný. Prosím skúste to znovu.</string>
<!-- Copy Link -->
<string name="copy_link">Skopírovať odkaz</string>
<!-- Text for the button that returns to caller application -->
@ -450,8 +423,6 @@
<string name="downloader_status_outdated">Aktualizácia</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Zlyhalo</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Vytváranie trás je k dispozícii iba v plnej verzii MAPS.ME. Získajte ho hneď teraz!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Aktuálna lokácia nie je definovaná. Prosím, špecifikujte lokáciu pre vytvorenie trasy.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: sv -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Navigera enklare med fullversionen av MAPS.ME med bl.a. offline-sökning. Skaffa den nu!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Uppgradera till MAPS.ME Pro gratis redan idag!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro är gratis idag. Berätta för dina vänner!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Du kan uppgradera till MAPS.ME Pro gratis redan idag. Missa inte din chans!</string>
<string name="free_pro_version_share_message">Bästa offline kartor MAPS. ME är gratis idag. Ladda ner den nu och berätta för dina vänner!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Få offline-kartor MAPS.ME gratis nu</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hallå där! Vet du att du i dag kan ladda ner offline-kartor MAPS.ME gratis? Med denna app går du aldrig vilse på resan. Vanligtvis kostar den 5 $ och tillhandahåller offline-kartor från alla länder i världen med sökning, bokmärken och rutter. Missa inte din chans!</string>
<!-- About button text (should be short) -->
<string name="about">Om</string>
<!-- Button text (should be short) -->
@ -82,8 +69,6 @@
<string name="report_an_issue">Rapportera ett problem</string>
<!-- View and button titles for accessibility -->
<string name="search">Sök</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Sökfunktionen finns bara i fullversionen av MAPS.ME. Skaffa den nu!</string>
<!-- Search box placeholder text -->
<string name="search_map">Sök karta</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -197,8 +182,6 @@
<string name="wait_several_minutes">Detta kan ta flera minuter.\nVänligen vänta…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Synliga</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Bokmärken finns bara i fullversionen av MAPS.ME. Skaffa den nu!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS har inaktiverats. Vänligen aktivera den i Inställningar.</string>
<!-- Measurement units title in settings activity -->
@ -292,16 +275,6 @@
<string name="message">Meddelande</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Promokod aktivering</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Skriv in promokod</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Promokoden är aktiverad!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Anslutningsfel. Försök igen senare.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Felaktig promokod. Försök igen.</string>
<!-- Copy Link -->
<string name="copy_link">Kopiera Länk</string>
<!-- Text for the button that returns to caller application -->
@ -446,8 +419,6 @@
<string name="downloader_status_outdated">Uppdatera</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Misslyckades</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Anvisningar är endast tillgängliga i den fullständiga versionen av MAPS.ME. Skaffa den nu!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Nuvarande plats är inte definierad. Ange din plats för att skapa rutt.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: th -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">ระบบนำทางที่ง่ายขึ้นด้วย MAPS.ME ที่โดดเด่นด้วยการค้นหาแบบออฟไลน์แบบเวอร์ชันเต็ม รับมันทันทีตอนนี้!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">อัปเกรดเป็น MAPS.ME Pro ฟรีวันนี้!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro ฟรีวันนี้ บอกเพื่อน ๆ ของคุณ!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">คุณสามารถที่จะอัปเกรดเป็น MAPS.ME Pro ฟรีวันนี้ อย่าพลาดโอกาสของคุณ!</string>
<string name="free_pro_version_share_message">อัปเกรดเป็น MAPS.ME Pro ฟรีวันนี้. ดาวน์โหลดตอนนี้แล้วบอกเพื่อน ๆ ของคุณ!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">รับแผนที่ออฟไลน์ MAPS.ME ฟรีตอนนี้</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">สวัสดี! คุณรู้ไหมว่าวันนี้คุณสามารถดาวน์โหลดแผนที่ออฟไลน์ของ MAPS.ME ได้ฟรี? เมื่อใช้แอปนี้ คุณจะไม่หลงทางอีกต่อไปในระหว่างการท่องเที่ยว ซึ่งโดยปกติแล้ว การให้บริการแผนที่ออฟไลน์ของประเทศทั่วโลกที่สามารถทำการค้นหา บุ๊กมาร์กและระบุเส้นทางได้นั้นจะต้องเสียเงินถึง $5 ดังนั้นอย่าพลาดโอกาสของคุณ!</string>
<!-- About button text (should be short) -->
<string name="about">เกี่ยวกับ</string>
<!-- Button text (should be short) -->
@ -86,8 +73,6 @@
<string name="report_an_issue">รายงานปัญหา</string>
<!-- View and button titles for accessibility -->
<string name="search">ค้นหา</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">สามารถใช้การค้นหา MAPS.ME ในเวอร์ชันเต็มได้ รับมันตอนนี้!</string>
<!-- Search box placeholder text -->
<string name="search_map">ค้นหาแผนที่</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -201,8 +186,6 @@
<string name="wait_several_minutes">นี่อาจจะใช้เวลาสองสามนาที\nโปรดรอ…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">มองเห็นได้</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">สามารถใช้บุ๊กมาร์กของ MAPS.ME ในเวอร์ชันเต็มได้ รับมันตอนนี้!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">มีการปิดใช้งาน GPS โปรดเปิดใช้งานในการตั้งค่า</string>
<!-- Measurement units title in settings activity -->
@ -294,16 +277,6 @@
<string name="message">ข้อความ</string>
<!-- Share by email button text -->
<string name="email">อีเมล</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">เปิดการใช้งานรหัสโปรโม (Promo)</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">ใส่รหัสโปรโม (Promo)</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">เปิดการใช้งานรหัสโปรโม (Promo) แล้ว!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">มีข้อผิดพลาดในการเชื่อมต่อ โปรดลองอีกครั้งในภายหลัง</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">รหัสโปรโปไม่ถูกต้อง โปรดลองอีกครั้ง</string>
<!-- Copy Link -->
<string name="copy_link">คัดลอกลิงก์</string>
<!-- Text for the button that returns to caller application -->
@ -448,8 +421,6 @@
<string name="downloader_status_outdated">ปรับปรุง</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">ล้มเหลว</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">เส้นทางจะใช้ได้เฉพาะในเวอร์ชันเต็มของ MAPS.ME. รับได้ในขณะนี้!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">ไม่มีการกำหนดสถานที่ปัจจุบัน โปรดระบุสถานที่ตั้งเพื่อสร้างเส้นทาง</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: tr -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Çevrimdışı arama özelliğine sahip MAPS.MEnin tam sürümüyle daha kolay gezinin. Hemen şimdi alın!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Mevcut sürünüzü bugün ücretsiz olarak MAPS.ME Pro\&#39;ya yükseltin!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro bugün ücretsiz. Arkadaşlarınıza anlatın!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Sadece bugün mevcut sürümünüzü MAPS.ME Pro\&#39;ya, ücretsiz olarak yükseltebilirsiniz. Bu fırsatı kaçırmayın!</string>
<string name="free_pro_version_share_message">MAPS.ME\&#39;nin en iyi çevrimdışı haritaları bugün ücretsiz. İndir ve arkadaşlarına haber ver!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">MAPS.ME çevrimdışı haritaları hemen ücretsiz al</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hey! Bugün MAPS.ME çevrimdışı haritaları ücretsiz indirebileceğini biliyor muydun? Bu uygulamayla seyahat ederken asla kaybolmayacaksın. Genellikle 5$\&#39;a mal olur ve arama, yer imleri ve rotalama ile tüm dünya ülkelerinin çevrimdışı haritalarını sunar. Fırsatı kaçırma!</string>
<!-- About button text (should be short) -->
<string name="about">Hakkında</string>
<!-- Button text (should be short) -->
@ -86,8 +73,6 @@
<string name="report_an_issue">Bir sorunu bildir</string>
<!-- View and button titles for accessibility -->
<string name="search">Ara</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Arama özelliği sadece MAPS.ME tam sürümünde kullanılabilir. Hemen şimdi al!</string>
<!-- Search box placeholder text -->
<string name="search_map">Haritada Ara</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -201,8 +186,6 @@
<string name="wait_several_minutes">Bu işlem birkaç dakika sürebilir.\nLütfen bekleyin…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Görünür</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Yer imleri sadece MAPS.ME tam sürümünde kullanılabilir. Hemen şimdi al!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS devre dışı bırakıldı. Lütfen Ayarlar bölümünden etkinleştirin.</string>
<!-- Measurement units title in settings activity -->
@ -296,16 +279,6 @@
<string name="message">Mesaj</string>
<!-- Share by email button text -->
<string name="email">E-Posta</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Promosyon Kodu Etkinleştirme</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Promosyon Kodunu Gir</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Promosyon kodu etkinleştirildi!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Bağlantı hatası. Lütfen daha sonra tekrar deneyin.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Geçersiz promosyon kodu. Lütfen tekrar deneyin.</string>
<!-- Copy Link -->
<string name="copy_link">Bağlantıyı Kopyala</string>
<!-- Text for the button that returns to caller application -->
@ -450,8 +423,6 @@
<string name="downloader_status_outdated">Güncelle</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Başarısız</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Rotalama sadece MAPS.ME tam sürümünde kullanılabilir. Hemen al!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Geçerli konum tanımlı değil. Rota oluşturmak için lütfen konum belirtin.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,19 +4,6 @@
<!-- Language: uk -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Більше можливостей у повній версії MAPS.ME з офлайн пошуком. Встановити її зараз?</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">MAPS.ME Pro сьогодні безкоштовні! Завантажуйте!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro сьогодні безкоштовні! Розкажіть друзям!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">Сьогодні ви можете завантажити MAPS.ME Pro безкоштовно. Не втрачайте можливості!</string>
<string name="free_pro_version_share_message">Круті офлайн-карти MAPS.ME Pro сьогодні безкоштовні! Завантажуй та розкажи друзям!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Офлайн-карти MAPS.ME сьогодні безкоштовні</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Привіт! Хороша новина: сьогодні ти можеш безкоштовно завантажити офлайн-карти MAPS.ME! З цією програмою ти ніколи не загубишся в поїздках. Зазвичай вона коштує $5! Крім офлайн карт всіх країн там ще є пошук, закладки і прокладання маршрутів. Обов\&#39;язково завантаж!</string>
<!-- About button text (should be short) -->
<string name="about">Про програму</string>
<!-- Button text (should be short) -->
@ -85,8 +72,6 @@
<string name="report_an_issue">Повідомити про проблему</string>
<!-- View and button titles for accessibility -->
<string name="search">Пошук</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Пошук доступний тільки в Pro версії MAPS.ME. Встановіть її прямо зараз!</string>
<!-- Search box placeholder text -->
<string name="search_map">Пошук на картi</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -202,8 +187,6 @@
<string name="wait_several_minutes">Це може зайняти кілька хвилин.\nБудь ласка, зачекайте…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Показувати на карті</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Мітки доступні у повній версії MAPS.ME. Отримати просто зараз?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS вимкнено в налаштуваннях пристрою. Будь ласка, увімкніть його для зручного використання програми.</string>
<!-- Measurement units title in settings activity -->
@ -441,8 +424,6 @@
<string name="downloader_status_outdated">овити</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Помилка</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Створення маршрутів можливе лише у платній версії MAPS.ME. Завантаж зараз!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Неможливо прокласти маршрут. Не визначено поточне місцезнаходження.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,8 +4,6 @@
<!-- Language: zh-TW -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">完整版的MAPS.ME特色在於更完善的離線搜尋立即購買!</string>
<!-- About button text (should be short) -->
<string name="about">關於</string>
<!-- Button text (should be short) -->
@ -71,8 +69,6 @@
<string name="report_an_issue">回饋問題</string>
<!-- View and button titles for accessibility -->
<string name="search">搜尋</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">搜尋功能僅適用於MAPS.ME專業完整版。馬上購買</string>
<!-- Search box placeholder text -->
<string name="search_map">搜尋地圖</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -188,8 +184,6 @@
<string name="wait_several_minutes">這可能需要幾分鐘\n請稍候…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">看得到的</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">書籤是MAPS.ME完整版本才有的功能馬上購買?</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS 目前是關閉的,請在系統中設定為開啟使用</string>
<!-- Measurement units title in settings activity -->
@ -415,8 +409,6 @@
<string name="downloader_status_outdated">更新</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">失敗</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">佈置路線只在MAPS.ME的完整版本中才有。现在就得到它吧</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">當前地點未定。請明確地點以創建路線。</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -4,8 +4,6 @@
<!-- Language: zh-Hans -->
<resources>
<!-- SECTION: Strings -->
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">使用带离线搜索功能的完整版MAPS.ME实现更简便的导航。现在就获取它吧</string>
<!-- About button text (should be short) -->
<string name="about">关于</string>
<!-- Button text (should be short) -->
@ -71,8 +69,6 @@
<string name="report_an_issue">报告问题</string>
<!-- View and button titles for accessibility -->
<string name="search">搜索</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">搜索只在完整版 MAPS.ME 中提供。现在就 获取它!</string>
<!-- Search box placeholder text -->
<string name="search_map">搜索地图</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -186,8 +182,6 @@
<string name="wait_several_minutes">这可能需要几分钟的时间。\n请稍候…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">可见</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">书签只在完整版 MAPS.ME 中提供。现在就 获取它!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS 已禁用。请在设置中启用它。</string>
<!-- Measurement units title in settings activity -->
@ -281,16 +275,6 @@
<string name="message">消息</string>
<!-- Share by email button text -->
<string name="email">邮件</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">促销码激活</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">输入促销码</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">促销码已激活!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">连接错误。请稍后再试。</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">无效的促销代码。请再试一次。</string>
<!-- Copy Link -->
<string name="copy_link">复制链接</string>
<!-- Text for the button that returns to caller application -->
@ -441,8 +425,6 @@
<string name="downloader_status_outdated">下载</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">下载失败</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">布置路线只在MAPS.ME的完整版本中才有。现在就得到它吧</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">当前地点未定。请明确地点以创建路线。</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -6,19 +6,6 @@
<!-- SECTION: Strings -->
<!-- DO NOT TRANSLATE! Used only on Android for special purposes. -->
<string name="shared_user_label">Maps With Me</string>
<!-- Dialog text when paid version become available on the market. Showed only once. -->
<string name="pro_version_available">Navigate easier with the full version of MAPS.ME featuring offline search. Get it right now!</string>
<!-- Notification text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_lite">Upgrade to MAPS.ME Pro for free today!</string>
<!-- Notification text when paid version become free on the market (Pro app version). -->
<string name="free_pro_version_notification_pro">MAPS.ME Pro is free today. Tell your friends!</string>
<!-- Dialog text when paid version become free on the market (Lite app version). -->
<string name="free_pro_version_notification_alert">You can upgrade to MAPS.ME Pro for free today. Dont miss your chance!</string>
<string name="free_pro_version_share_message">Best offline maps MAPS.ME are free today. Download now and tell your friends!</string>
<!-- Share email subject when paid version become free on the market. -->
<string name="free_pro_version_share_email_subject">Get offline maps MAPS.ME for free now</string>
<!-- Share email body when paid version become free on the market. -->
<string name="free_pro_version_share_email_text">Hey! Do you know that today you can download offline maps MAPS.ME for free? With this app youll never get lost while traveling. It usually costs $5 and provides offline maps of all world countries with search, bookmarks and routing. Dont miss your chance!</string>
<!-- About button text (should be short) -->
<string name="about">About</string>
<!-- Button text (should be short) -->
@ -88,8 +75,6 @@
<string name="report_an_issue">Report an issue</string>
<!-- View and button titles for accessibility -->
<string name="search">Search</string>
<!-- Search button pressed dialog title in the free version -->
<string name="search_available_in_pro_version">Search is only available in the full version of MAPS.ME. Get it right now!</string>
<!-- Search box placeholder text -->
<string name="search_map">Search Map</string>
<!-- Settings/Downloader - No free space dialog title -->
@ -206,8 +191,6 @@
<string name="wait_several_minutes">This can take several minutes.\nPlease wait…</string>
<!-- Show bookmarks from this category on a map or not -->
<string name="visible">Visible</string>
<!-- Proposal to download Pro version with Bookmarks -->
<string name="bookmarks_in_pro_version">Bookmarks are only available in the full version of MAPS.ME. Get it right now!</string>
<!-- Toast which is displayed when GPS has been deactivated -->
<string name="gps_is_disabled_long_text">GPS is disabled. Please enable it in Settings.</string>
<!-- Measurement units title in settings activity -->
@ -301,16 +284,6 @@
<string name="message">Message</string>
<!-- Share by email button text -->
<string name="email">E-Mail</string>
<!-- Promocode Activation dialog title -->
<string name="promocode_activation">Promo Code Activation</string>
<!-- Enter promo code hint -->
<string name="enter_promocode_hint">Enter Promo Code</string>
<!-- Promocode Activation success message -->
<string name="promocode_success">Promo code is activated!</string>
<!-- Promocode Activation connection/io error -->
<string name="promocode_error">Connection error. Please try again later.</string>
<!-- Promocode Activation is invalid message. -->
<string name="promocode_failure">Invalid promo code. Please try again.</string>
<!-- Copy Link -->
<string name="copy_link">Copy Link</string>
<!-- Text for the button that returns to caller application -->
@ -461,8 +434,6 @@
<string name="downloader_status_outdated">Update</string>
<!-- Status of failed country in the list -->
<string name="downloader_status_failed">Failed</string>
<!-- Show in Lite version when user try to download routing files or try to build route -->
<string name="routing_failed_buy_pro">Routing is only available in the full version of MAPS.ME. Get it right now!</string>
<!-- Show when user try build route, but we don't know where he -->
<string name="routing_failed_unknown_my_position">Current location is undefined. Please specify location to create route.</string>
<!-- Show if use has not routing file, or InconsistentMWMandRoute -->

View file

@ -25,13 +25,4 @@ public class DownloadActivity extends MWMFragmentActivity
transaction.replace(android.R.id.content, mDownloadFragment, "fragment");
transaction.commit();
}
@Override
public void onBuyPro()
{
if (mDownloadFragment != null && mDownloadFragment.isAdded() && !mDownloadFragment.isRemoving() && mDownloadFragment.onBackPressed())
return;
super.onBuyPro();
}
}

View file

@ -345,7 +345,7 @@ public class AdsManager
{
final MWMApplication application = MWMApplication.get();
return ((ConnectionState.isConnected()) &&
((BuildConfig.IS_PRO && banner.getShowInPro()) || (!BuildConfig.IS_PRO && banner.getShowInLite())) &&
banner.getShowInPro() &&
(BuildConfig.VERSION_CODE >= banner.getAppVersion()) &&
(application.nativeGetBoolean("ShouldShow" + banner.getId(), true)) &&
(application.getForegroundTime() >= banner.getFgTime()) &&

View file

@ -1,79 +0,0 @@
package com.mapswithme.maps.Ads;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.ImageButton;
import com.mapswithme.maps.BuildConfig;
import com.mapswithme.maps.R;
import com.mapswithme.util.statistics.Statistics;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Locale;
public class BannerDialogFragment extends DialogFragment implements View.OnClickListener
{
public static final String EXTRA_BANNER = "extra.banner";
private ImageButton mBtnClose;
private WebView mWvBanner;
private Banner mBanner;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
mBanner = getArguments().getParcelable(EXTRA_BANNER);
final View view = inflater.inflate(R.layout.fragment_pro_routing, container, false);
mBtnClose = (ImageButton) view.findViewById(R.id.btn__close);
mBtnClose.setOnClickListener(this);
mWvBanner = (WebView) view.findViewById(R.id.wv__banner);
mWvBanner.getSettings().setJavaScriptEnabled(true);
mWvBanner.setInitialScale(100);
try
{
final View root = getActivity().findViewById(android.R.id.content);
final StringBuilder builder = new StringBuilder(mBanner.getUrl())
.append("?Width=").append(URLEncoder.encode(String.valueOf(root.getWidth()), "UTF-8"))
.append("&Height=").append(URLEncoder.encode(String.valueOf(root.getHeight()), "UTF-8"))
.append("&Lang=").append(URLEncoder.encode(Locale.getDefault().getLanguage(), "UTF-8"))
.append("&Pro_URL=").append(URLEncoder.encode(BuildConfig.PRO_URL, "UTF-8"));
mWvBanner.loadUrl(builder.toString());
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
Statistics.INSTANCE.trackSimpleNamedEvent(Statistics.EventName.PROMO_BANNER_SHOWN);
return view;
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btn__close:
dismiss();
break;
}
}
@Override
public void onStop()
{
super.onStop();
if (getActivity() != null)
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
}

View file

@ -334,34 +334,12 @@ public class DownloadResourcesActivity extends MWMFragmentActivity
private boolean checkLiteProPackages()
{
try
if (!MWMApplication.get().isYota() &&
(getPackageIntent(Constants.Package.MWM_LITE_PACKAGE) != null ||
getPackageIntent(Constants.Package.MWM_SAMSUNG_PACKAGE) != null))
{
if (!BuildConfig.IS_PRO)
{
final Intent intent = getPackageIntent(Constants.Package.MWM_PRO_PACKAGE);
if (intent != null)
{
Log.i(TAG, "Trying to launch pro version");
startActivity(intent);
finish();
return true;
}
}
else
{
if (!MWMApplication.get().isYota() &&
(getPackageIntent(Constants.Package.MWM_LITE_PACKAGE) != null ||
getPackageIntent(Constants.Package.MWM_SAMSUNG_PACKAGE) != null))
{
Toast.makeText(this, R.string.suggest_uninstall_lite, Toast.LENGTH_LONG).show();
}
}
} catch (final ActivityNotFoundException ex)
{
Log.d(TAG, "Intent not found", ex);
Toast.makeText(this, R.string.suggest_uninstall_lite, Toast.LENGTH_LONG).show();
}
return false;
}

View file

@ -36,11 +36,6 @@ public class Framework
void onRoutingEvent(boolean isSuccess, String message, boolean openDownloader);
}
public interface BuyProListener
{
void onBuyPro();
}
// this class is just bridge between Java and C++ worlds, we must not create it
private Framework()
{}
@ -150,7 +145,6 @@ public class Framework
public native static LocationState.RoutingInfo nativeGetRouteFollowingInfo();
public native static void nativeSetRoutingListener(RoutingListener listener);
public native static void nativeSetBuyProListener(BuyProListener listener);
//@}
public native static String nativeGetCountryNameIfAbsent(double lat, double lon);

View file

@ -48,8 +48,6 @@ import com.mapswithme.country.DownloadActivity;
import com.mapswithme.country.DownloadFragment;
import com.mapswithme.country.StorageOptions;
import com.mapswithme.maps.Ads.AdsManager;
import com.mapswithme.maps.Ads.Banner;
import com.mapswithme.maps.Ads.BannerDialogFragment;
import com.mapswithme.maps.Ads.MenuAd;
import com.mapswithme.maps.Framework.OnBalloonListener;
import com.mapswithme.maps.Framework.RoutingListener;
@ -307,10 +305,7 @@ public class MWMActivity extends NvEventQueueActivity
checkRoutingMaps();
checkLiteMapsInPro();
checkFacebookDialog();
checkBuyProDialog();
checkUserMarkActivation();
checkShouldShowBanners();
Notifier.notifyAboutFreePro(MWMActivity.this);
}
});
@ -373,10 +368,7 @@ public class MWMActivity extends NvEventQueueActivity
public void onBookmarksClicked(View v)
{
if (!MWMApplication.get().hasBookmarks())
UiUtils.showDownloadProDialog(this, getString(R.string.bookmarks_in_pro_version));
else
showBookmarks();
showBookmarks();
}
private void showBookmarks()
@ -441,7 +433,7 @@ public class MWMActivity extends NvEventQueueActivity
private void checkRoutingMaps()
{
if (BuildConfig.IS_PRO && MWMApplication.get().nativeGetBoolean(IS_FIRST_ROUTING_VERSION_RUN, true)
if (MWMApplication.get().nativeGetBoolean(IS_FIRST_ROUTING_VERSION_RUN, true)
&& ActiveCountryTree.getOutOfDateCount() != 0)
{
MWMApplication.get().nativeSetBoolean(IS_FIRST_ROUTING_VERSION_RUN, false);
@ -469,7 +461,6 @@ public class MWMActivity extends NvEventQueueActivity
private void checkLiteMapsInPro()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT &&
BuildConfig.IS_PRO &&
(Utils.isPackageInstalled(Constants.Package.MWM_LITE_PACKAGE) || Utils.isPackageInstalled(Constants.Package.MWM_SAMSUNG_PACKAGE)))
{
if (!mPathManager.containsLiteMapsOnSdcard())
@ -630,27 +621,6 @@ public class MWMActivity extends NvEventQueueActivity
}
};
private void checkBuyProDialog()
{
if (!BuildConfig.IS_PRO &&
(ConnectionState.isConnected()) &&
MWMApplication.get().shouldShowDialog(MWMApplication.BUYPRO))
{
showDialogImpl(MWMApplication.BUYPRO, R.string.pro_version_available,
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dlg, int which)
{
MWMApplication.get().submitDialogResult(MWMApplication.BUYPRO, MWMApplication.OK);
dlg.dismiss();
UiUtils.openAppInMarket(MWMActivity.this, BuildConfig.PRO_URL);
}
}
);
}
}
private void showSearch()
{
if (mIsFragmentContainer)
@ -676,9 +646,7 @@ public class MWMActivity extends NvEventQueueActivity
public void onSearchClicked(View v)
{
if (!BuildConfig.IS_PRO)
UiUtils.showDownloadProDialog(this, getString(R.string.search_available_in_pro_version));
else if (!MapStorage.INSTANCE.updateMaps(R.string.search_update_maps, this, new MapStorage.UpdateFunctor()
if (!MapStorage.INSTANCE.updateMaps(R.string.search_update_maps, this, new MapStorage.UpdateFunctor()
{
@Override
public void doUpdate()
@ -1064,11 +1032,6 @@ public class MWMActivity extends NvEventQueueActivity
else
onDismiss();
}
else if (intent.getBooleanExtra(Notifier.EXTRA_FORCE_PROMO_DIALOG, false))
{
getIntent().putExtra(Notifier.EXTRA_FORCE_PROMO_DIALOG, true);
Notifier.notifyAboutFreePro(this);
}
}
}
@ -1327,23 +1290,6 @@ public class MWMActivity extends NvEventQueueActivity
mLocationPredictor.resume();
}
private void checkShouldShowBanners()
{
final Banner banner = AdsManager.getBannerToShow();
if (banner != null)
{
final DialogFragment fragment = new BannerDialogFragment();
fragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.MwmMain_Dialog_DialogFragment);
final Bundle args = new Bundle();
args.putParcelable(BannerDialogFragment.EXTRA_BANNER, banner);
fragment.setArguments(args);
final FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.add(android.R.id.content, fragment).addToBackStack(null).commit();
}
}
private void tryResumeRouting()
{
if (Framework.nativeIsRoutingActive())
@ -1733,11 +1679,6 @@ public class MWMActivity extends NvEventQueueActivity
private void buildRoute()
{
if (!BuildConfig.IS_PRO)
{
UiUtils.showDownloadProDialog(this, getString(R.string.routing_failed_buy_pro));
return;
}
if (!MWMApplication.get().nativeGetBoolean(IS_ROUTING_DISCLAIMER_APPROVED, false))
{
showRoutingDisclaimer();

View file

@ -107,7 +107,7 @@ public class MWMApplication extends android.app.Application implements ActiveCou
// init native framework
nativeInit(getApkPath(), extStoragePath, extTmpPath, getOBBGooglePath(),
BuildConfig.FLAVOR, BuildConfig.BUILD_TYPE, BuildConfig.IS_PRO,
BuildConfig.FLAVOR, BuildConfig.BUILD_TYPE,
mIsYota, getResources().getBoolean(R.bool.isTablet));
ActiveCountryTree.addListener(this);
@ -134,8 +134,7 @@ public class MWMApplication extends android.app.Application implements ActiveCou
nativeAddLocalization("routing_failed_internal_error", getString(R.string.routing_failed_internal_error));
// init BookmarkManager (automatically loads bookmarks)
if (hasBookmarks())
BookmarkManager.getBookmarkManager();
BookmarkManager.getBookmarkManager();
updateLaunchNumbers();
initMrgs();
@ -204,11 +203,6 @@ public class MWMApplication extends android.app.Application implements ActiveCou
return nativeGetDouble(FOREGROUND_TIME_SETTING, 0);
}
public boolean hasBookmarks()
{
return BuildConfig.IS_PRO || mIsYota;
}
public boolean isYota()
{
return mIsYota;
@ -222,15 +216,13 @@ public class MWMApplication extends android.app.Application implements ActiveCou
private native void nativeInit(String apkPath, String storagePath,
String tmpPath, String obbGooglePath,
String flavorName, String buildType,
boolean isPro, boolean isYota, boolean isTablet);
boolean isYota, boolean isTablet);
public native boolean nativeIsBenchmarking();
// Dealing with dialogs.
// Constants should be equal with map/dialog_settings.hpp
public static final int FACEBOOK = 0;
public static final int BUYPRO = 1;
public static final int ROUTING = 3;
public static final Integer[] FACEBOOK_RATE_LAUNCHES = new Integer[]{3, 7, 10, 15, 21};

View file

@ -34,18 +34,9 @@ public class Notifier
private static final String EXTRA_CONTENT = "ExtraContent";
private static final String EXTRA_TITLE = "ExtraTitle";
private static final String EXTRA_INTENT = "ExtraIntent";
public static final String EXTRA_FORCE_PROMO_DIALOG = "ExtraForceDialog";
public static final String ACTION_NAME = "com.mapswithme.MYACTION";
private static IntentFilter mIntentFilter = new IntentFilter(ACTION_NAME);
private static BroadcastReceiver mAlarmReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
showFreeLiteNotification(new Intent(Intent.ACTION_VIEW, Uri.parse(BuildConfig.PRO_URL)).putExtras(intent.getExtras()));
}
};
private Notifier() { }
@ -134,79 +125,4 @@ public class Notifier
{
getNotificationManager().cancel(ID_DOWNLOAD_NEW_COUNTRY);
}
public static void notifyAboutFreePro(Activity activity)
{
if (MWMApplication.get().nativeGetBoolean(MWMApplication.IS_PREINSTALLED, false))
return;
if (BuildConfig.IS_PRO)
freePromoInPro(activity);
else
freePromoInLite(activity);
}
private static void freePromoInLite(Activity activity)
{
final MWMApplication application = MWMApplication.get();
final Calendar calendar = Calendar.getInstance();
calendar.set(2014, Calendar.DECEMBER, 3, 19, 0);
if (System.currentTimeMillis() > calendar.getTimeInMillis())
{
UiUtils.showDownloadProDialog(activity, application.getString(R.string.free_pro_version_notification_alert));
cancelPromoNotifications();
}
else
scheduleFreeLiteNotification(application.getString(R.string.free_pro_version_notification_lite), "", calendar);
}
private static void cancelPromoNotifications()
{
final MWMApplication application = MWMApplication.get();
final AlarmManager alarmManager = (AlarmManager) application.getSystemService(Context.ALARM_SERVICE);
final Intent it = new Intent(ACTION_NAME);
final PendingIntent pi = PendingIntent.getBroadcast(application, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pi);
}
private static void scheduleFreeLiteNotification(String title, String content, Calendar calendar)
{
final MWMApplication application = MWMApplication.get();
application.registerReceiver(mAlarmReceiver, mIntentFilter);
final Intent it = new Intent(ACTION_NAME).
putExtra(EXTRA_TITLE, title).
putExtra(EXTRA_CONTENT, content);
final PendingIntent pi = PendingIntent.getBroadcast(application, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);
final AlarmManager alarmManager = (AlarmManager) application.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pi);
}
public static void showFreeLiteNotification(Intent intent)
{
final String title = intent.getStringExtra(EXTRA_TITLE);
final String content = intent.getStringExtra(EXTRA_CONTENT);
final Notification notification = getBuilder()
.setContentTitle(title)
.setContentText(content)
.setTicker(title + ": " + content)
.setContentIntent(PendingIntent.getActivity(MWMApplication.get(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT))
.build();
getNotificationManager().notify(ID_PRO_IS_FREE, notification);
}
private static void freePromoInPro(Activity activity)
{
final MWMApplication application = MWMApplication.get();
final Calendar calendar = Calendar.getInstance();
calendar.set(2014, Calendar.DECEMBER, 3);
if (Utils.isInstalledAfter(calendar) &&
!application.nativeGetBoolean(FREE_PROMO_SHOWN, false) &&
application.getForegroundTime() > 10 * 60)
{
UiUtils.showPromoShareDialog(activity, application.getString(R.string.free_pro_version_share_message));
application.nativeSetBoolean(FREE_PROMO_SHOWN, true);
}
}
}

View file

@ -14,15 +14,8 @@ import com.mapswithme.util.statistics.Statistics;
import ru.mail.mrgservice.MRGService;
public class MWMFragmentActivity extends ActionBarActivity implements Framework.BuyProListener
public class MWMFragmentActivity extends ActionBarActivity
{
@Override
protected void onResume()
{
super.onResume();
Framework.nativeSetBuyProListener(this);
}
@Override
protected void onStart()
{
@ -68,9 +61,4 @@ public class MWMFragmentActivity extends ActionBarActivity implements Framework.
else
return super.onOptionsItemSelected(item);
}
public void onBuyPro()
{
UiUtils.showDownloadProDialog(MWMFragmentActivity.this, getString(R.string.routing_failed_buy_pro));
}
}

View file

@ -244,22 +244,19 @@ public class SearchFragment extends MWMListFragment implements View.OnClickListe
// If user searched for something, clear API layer
SearchController.getInstance().cancelApiCall();
if (BuildConfig.IS_PRO)
// Put query string for "View on map" or feature name for search result.
final boolean allResults = (position == 0);
final String query = getSearchString();
SearchController.getInstance().setQuery(allResults ? query : "");
if (allResults)
{
// Put query string for "View on map" or feature name for search result.
final boolean allResults = (position == 0);
final String query = getSearchString();
SearchController.getInstance().setQuery(allResults ? query : "");
if (allResults)
{
nativeShowAllSearchResults();
runInteractiveSearch(query, Language.getKeyboardInput(getActivity()));
}
InputUtils.hideKeyboard(mSearchEt);
MWMActivity.startWithSearchResult(getActivity(), !allResults);
getActivity().getSupportFragmentManager().popBackStack();
nativeShowAllSearchResults();
runInteractiveSearch(query, Language.getKeyboardInput(getActivity()));
}
InputUtils.hideKeyboard(mSearchEt);
MWMActivity.startWithSearchResult(getActivity(), !allResults);
getActivity().getSupportFragmentManager().popBackStack();
}
private SearchAdapter getSearchAdapter()

View file

@ -820,12 +820,6 @@ public class MapInfoView extends LinearLayout implements View.OnClickListener
showColorChooser();
break;
case R.id.info_box_is_bookmarked:
if (!MWMApplication.get().hasBookmarks())
{
mIsBookmarked.setChecked(false);
UiUtils.showDownloadProDialog((Activity) getContext(), getResources().getString(R.string.bookmarks_in_pro_version));
return;
}
if (mMapObject == null)
return;
if (mMapObject.getType() == MapObjectType.BOOKMARK)

View file

@ -38,7 +38,6 @@ public abstract class ShareAction
private final static SmsShareAction SMS_SHARE = new SmsShareAction();
private final static EmailShareAction EMAIL_SHARE = new EmailShareAction();
private final static AnyShareAction ANY_SHARE = new AnyShareAction();
private static final ShareAction FB_SHARE = new PromoShareAction();
/* Extras*/
private static final String EXTRA_SMS_BODY = "sms_body";
@ -71,11 +70,6 @@ public abstract class ShareAction
return ANY_SHARE;
}
public static ShareAction getFbShare()
{
return FB_SHARE;
}
protected ShareAction(int id, int nameResId, Intent baseIntent)
{
mId = id;
@ -225,58 +219,6 @@ public abstract class ShareAction
}
}
/**
* ANYTHING
*/
public static class PromoShareAction extends ShareAction
{
public PromoShareAction()
{
super(ID_ANY, R.string.share, new Intent(Intent.ACTION_SEND).setType(TYPE_TEXT_PLAIN));
}
@Override
public void shareWithText(Activity activity, String body, String subject)
{
final Intent intent = getIntent();
intent.putExtra(Intent.EXTRA_TEXT, body)
.putExtra(Intent.EXTRA_SUBJECT, subject);
List<LabeledIntent> targetedShareIntents = new ArrayList<>();
List<ResolveInfo> resInfo = activity.getPackageManager().queryIntentActivities(intent, 0);
if (!resInfo.isEmpty())
{
for (ResolveInfo info : resInfo)
{
if (info.activityInfo.packageName.toLowerCase().contains("facebook") || info.activityInfo.packageName.toLowerCase().contains("twitter") ||
info.activityInfo.packageName.toLowerCase().contains("google") || info.activityInfo.packageName.toLowerCase().contains("viber"))
{
final Intent copy = new Intent(intent);
copy.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name));
copy.putExtra(Intent.EXTRA_TEXT, activity.getString(R.string.free_pro_version_share_email_text));
copy.putExtra(Intent.EXTRA_SUBJECT, activity.getString(R.string.free_pro_version_share_email_subject));
if (info.activityInfo.packageName.toLowerCase().contains(Constants.Package.FB_PACKAGE))
{
copy.putExtra(Intent.EXTRA_TEXT, "http://maps.me/fb_share");
copy.putExtra(Intent.EXTRA_SUBJECT, "http://maps.me/fb_share");
}
targetedShareIntents.add(new LabeledIntent(copy, info.activityInfo.packageName,
info.loadLabel(activity.getPackageManager()), info.icon));
}
}
Intent emailIntent = new Intent();
emailIntent.setAction(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, body);
emailIntent.setType(TYPE_MESSAGE_RFC822);
final String header = activity.getString(R.string.share);
Intent chooserIntent = Intent.createChooser(emailIntent, header);
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[targetedShareIntents.size()]));
activity.startActivity(chooserIntent);
}
}
}
static
{
ACTIONS.put(ID_ANY, getAnyShare());

View file

@ -273,39 +273,6 @@ public final class UiUtils
showIf(!TextUtils.isEmpty(text), tv);
}
public static void showDownloadProDialog(final Activity activity, final String message)
{
activity.runOnUiThread(new Runnable()
{
@Override
public void run()
{
new AlertDialog.Builder(activity)
.setMessage(message)
.setCancelable(false)
.setPositiveButton(activity.getString(R.string.get_it_now), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dlg, int which)
{
dlg.dismiss();
openAppInMarket(activity, BuildConfig.PRO_URL);
}
}).
setNegativeButton(activity.getString(R.string.cancel), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dlg, int which)
{
dlg.dismiss();
}
})
.create()
.show();
}
});
}
public static void openAppInMarket(Activity activity, String marketUrl)
{
try
@ -409,36 +376,6 @@ public final class UiUtils
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
}
public static void showPromoShareDialog(final Activity activity, String message)
{
if (activity == null || activity.isFinishing())
return;
new AlertDialog.Builder(activity)
.setMessage(message)
.setCancelable(false)
.setPositiveButton(activity.getString(R.string.share), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dlg, int which)
{
dlg.dismiss();
ShareAction.getFbShare().shareWithText(activity, activity.getString(R.string.free_pro_version_share_email_text),
activity.getString(R.string.free_pro_version_share_email_subject));
}
}).
setNegativeButton(activity.getString(R.string.cancel), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dlg, int which)
{
dlg.dismiss();
}
})
.create()
.show();
}
// utility class
private UiUtils()
{}

View file

@ -44,7 +44,7 @@ public enum Statistics
public static final String BOOKMARK_GROUP_CHANGED = "Bookmark group changed";
public static final String DESCRIPTION_CHANGED = "Description changed";
public static final String GROUP_CREATED = "Group Created";
public static final String SEARCH_CONTEXT_CNAHGED = "Search context changed";
public static final String SEARCH_CONTEXT_CHANGED = "Search context changed";
public static final String COLOR_CHANGED = "Color changed";
public static final String BOOKMARK_CREATED = "Bookmark created";
public static final String PLACE_SHARED = "Place Shared";
@ -66,7 +66,6 @@ public enum Statistics
public static final String STATISTICS_STATUS_CHANGED = "Statistics status changed";
public static final String NO_FREE_SPACE = "Downloader. Not enough free space.";
public static final String APP_ACTIVATED = "Application activated.";
public static final String PROMO_BANNER_SHOWN = "Promo banner shown.";
}
public static class EventParam
@ -169,7 +168,7 @@ public enum Statistics
public void trackSearchContextChanged(String from, String to)
{
final Event event = mEventBuilder
.setName(EventName.SEARCH_CONTEXT_CNAHGED)
.setName(EventName.SEARCH_CONTEXT_CHANGED)
.addParam(EventParam.FROM, from)
.addParam(EventParam.TO, to)
.buildEvent();
@ -310,29 +309,26 @@ public enum Statistics
private void collectOneTimeStatistics(Activity activity)
{
if (MWMApplication.get().hasBookmarks())
mEventBuilder.setName(EventParam.PRO_STAT);
// Number of sets
final BookmarkManager manager = BookmarkManager.getBookmarkManager();
final int categoriesCount = manager.getCategoriesCount();
if (categoriesCount > 0)
{
mEventBuilder.setName(EventParam.PRO_STAT);
// Calculate average number of bookmarks in category
final double[] sizes = new double[categoriesCount];
for (int catIndex = 0; catIndex < categoriesCount; catIndex++)
sizes[catIndex] = manager.getCategoryById(catIndex).getSize();
final double average = MathUtils.average(sizes);
// Number of sets
final BookmarkManager manager = BookmarkManager.getBookmarkManager();
final int categoriesCount = manager.getCategoriesCount();
if (categoriesCount > 0)
{
// Calculate average number of bookmarks in category
final double[] sizes = new double[categoriesCount];
for (int catIndex = 0; catIndex < categoriesCount; catIndex++)
sizes[catIndex] = manager.getCategoryById(catIndex).getSize();
final double average = MathUtils.average(sizes);
mEventBuilder.addParam(EventParam.BOOKMARK_NUMBER_AVG, String.valueOf(average));
}
mEventBuilder.addParam(EventParam.CATEGORIES_COUNT, String.valueOf(categoriesCount))
.addParam(EventParam.FG_TIME, String.valueOf(MWMApplication.get().getForegroundTime()));
trackIfEnabled(mEventBuilder.buildEvent());
mEventBuilder.addParam(EventParam.BOOKMARK_NUMBER_AVG, String.valueOf(average));
}
mEventBuilder.addParam(EventParam.CATEGORIES_COUNT, String.valueOf(categoriesCount))
.addParam(EventParam.FG_TIME, String.valueOf(MWMApplication.get().getForegroundTime()));
trackIfEnabled(mEventBuilder.buildEvent());
setStatisticsCollected(true);
}

View file

@ -49,9 +49,7 @@
@interface UIApplication (URLs)
- (void)openProVersionFrom:(NSString *)launchPlaceName;
- (void)rateLiteVersionFrom:(NSString *)launchPlaceName;
- (void)rateProVersionFrom:(NSString *)launchPlaceName;
- (void)rateVersionFrom:(NSString *)launchPlaceName;
- (void)openGuideWithName:(NSString *)guideName itunesURL:(NSString *)itunesURL;
@end

View file

@ -180,32 +180,12 @@
@implementation UIApplication (URLs)
- (void)openProVersionFrom:(NSString *)launchPlaceName
{
NSURL * url = [NSURL URLWithString:MAPSWITHME_PREMIUM_LOCAL_URL];
if ([self canOpenURL:url])
{
[self openURL:url];
}
else
{
NSString * urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id510623322?mt=8&at=1l3v7ya&ct=%@", launchPlaceName];
[self openURL:[NSURL URLWithString:urlString]];
}
}
- (void)rateProVersionFrom:(NSString *)launchPlaceName
- (void)rateVersionFrom:(NSString *)launchPlaceName
{
NSString * urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id510623322?mt=8&at=1l3v7ya&ct=%@", launchPlaceName];
[self openURL:[NSURL URLWithString:urlString]];
}
- (void)rateLiteVersionFrom:(NSString *)launchPlaceName
{
NSString * urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id431183278?mt=8&at=1l3v7ya&ct=%@", launchPlaceName];
[self openURL:[NSURL URLWithString:urlString]];
}
- (void)openGuideWithName:(NSString *)guideName itunesURL:(NSString *)itunesURL
{
NSString * guide = [[guideName stringByReplacingOccurrencesOfString:@" " withString:@""] lowercaseString];

View file

@ -51,10 +51,6 @@
- (NSArray *)generateItems
{
NSMutableArray * items = [[NSMutableArray alloc] init];
if (!GetPlatform().IsPro())
[items addObject:@{@"Id" : @"MWMPro", @"Title" : L(@"become_a_pro"), @"Icon" : @"MWMProIcon", @"Color" : @"15c783"}];
bool adsEnabled = true;
(void)Settings::Get("MenuLinksEnabled", adsEnabled);
if (adsEnabled)
@ -64,9 +60,9 @@
[items addObjectsFromArray:serverItems];
}
NSArray * standardItems = @[@{@"Id" : @"Maps", @"Title" : L(@"download_maps"), @"Icon" : @"IconMap"},
@{@"Id" : @"Settings", @"Title" : L(@"settings_and_more"), @"Icon" : @"IconSettings"},
@{@"Id" : @"Share", @"Title" : L(@"share_my_location"), @"Icon" : @"IconShare"}];
NSArray * standardItems = @[@{@"Id" : @"Maps", @"Title" : L(@"download_maps"), @"Icon" : @"IconMap"},
@{@"Id" : @"Settings", @"Title" : L(@"settings_and_more"), @"Icon" : @"IconSettings"},
@{@"Id" : @"Share", @"Title" : L(@"share_my_location"), @"Icon" : @"IconShare"}];
[items addObjectsFromArray:standardItems];
return items;

View file

@ -2,7 +2,6 @@
#define FIRST_LAUNCH_KEY @"FIRST_LAUNCH_KEY"
#define MAPSWITHME_PREMIUM_LOCAL_URL @"mapswithmepro://"
#define MAPSWITHME_LITE_LOCAL_URL @"mapswithmelite://"
#define BOOKMARK_CATEGORY_DELETED_NOTIFICATION @"BookmarkCategoryDeletedNotification"
#define METRICS_CHANGED_NOTIFICATION @"MetricsChangedNotification"

View file

@ -1,18 +0,0 @@
#import <Foundation/Foundation.h>
extern NSString * const InAppMessageInterstitial;
extern NSString * const InAppMessageBanner;
@interface InAppMessagesManager : NSObject
@property (nonatomic, weak) UIViewController * currentController;
- (void)registerController:(UIViewController *)vc forMessage:(NSString *)messageName;
- (void)unregisterControllerFromAllMessages:(UIViewController *)vc;
- (void)triggerMessage:(NSString *)messageName;
+ (instancetype)sharedManager;
@end

View file

@ -1,461 +0,0 @@
#import "InAppMessagesManager.h"
#import "AppInfo.h"
#import "Statistics.h"
#import "InterstitialView.h"
#import "UIKitCategories.h"
#import "MapsAppDelegate.h"
#import "MapViewController.h"
@interface BannerImageView : UIImageView
@property (nonatomic) NSString * imageType;
@end
@implementation BannerImageView
@end
typedef void (^CompletionBlock)(NSArray * images, NSString * imageType);
NSString * const InAppMessageInterstitial = @"InAppMessageInterstitial";
NSString * const InAppMessageBanner = @"InAppMessageBanner";
NSString * const MWMProVersionPrefix = @"MWMPro";
@interface InAppMessagesManager () <InterstitialViewDelegate>
@property (nonatomic) NSMutableDictionary * observers;
@property (nonatomic) BannerImageView * banner;
@end
@implementation InAppMessagesManager
#pragma mark - Public methods
- (instancetype)init
{
self = [super init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appInfoSynced:) name:AppInfoSyncedNotification object:nil];
return self;
}
+ (instancetype)sharedManager
{
static InAppMessagesManager * manager;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[self alloc] init];
});
return manager;
}
- (void)registerController:(UIViewController *)vc forMessage:(NSString *)messageName
{
self.currentController = vc;
__weak UIViewController * weakVC = vc;
self.observers[messageName] = weakVC;
}
- (void)unregisterControllerFromAllMessages:(UIViewController *)vc
{
for (NSString * key in [self.observers allKeys])
{
if (self.observers[key] == vc)
[self.observers removeObjectForKey:key];
}
[self cleanBanners];
}
- (void)triggerMessage:(NSString *)messageName
{
UIViewController * vc = self.observers[messageName];
if (!(vc && [self shouldShowMessage:messageName]) || [MapsAppDelegate theApp].m_mapViewController.popoverVC)
return;
[self findVariantForMessage:messageName completion:^(NSArray * images, NSString * imageType){
if ([messageName isEqualToString:InAppMessageInterstitial])
{
if ([images count])
{
InterstitialView * interstitial = [[InterstitialView alloc] initWithImages:images inAppMessageName:messageName imageType:imageType delegate:self];
[interstitial show];
}
}
else if ([messageName isEqualToString:InAppMessageBanner])
{
[self cleanBanners];
if ([images count])
{
BannerImageView * banner = [[BannerImageView alloc] initWithImage:[images firstObject]];
banner.imageType = imageType;
banner.userInteractionEnabled = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bannerTap:)];
[banner addGestureRecognizer:tap];
if (!SYSTEM_VERSION_IS_LESS_THAN(@"7"))
banner.minY = 20;
banner.midX = vc.view.width / 2;
banner.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[vc.view addSubview:banner];
self.banner = banner;
NSString * eventName = [NSString stringWithFormat:@"%@ showed", InAppMessageBanner];
[[Statistics instance] logInAppMessageEvent:eventName imageType:imageType];
}
}
}];
}
#pragma mark - Private methods
- (void)cleanBanners
{
[self.banner removeFromSuperview];
self.banner = nil;
}
- (BOOL)shouldShowMessage:(NSString *)messageName
{
NSString * featureName = [self appFeatureNameForMessage:messageName];
BOOL featureAvailable = [[AppInfo sharedInfo] featureAvailable:featureName];
NSTimeInterval period = [[[AppInfo sharedInfo] featureValue:featureName forKey:@"Period"] doubleValue];
NSDate * lastShowDate = [self lastShowTimeOfMessage:messageName];
BOOL showTime = lastShowDate ? [[NSDate date] timeIntervalSinceDate:lastShowDate] > period : YES;
UIViewController * vc = self.observers[messageName];
BOOL isCurrentVC = YES;
if (vc)
isCurrentVC = self.currentController == vc;
return featureAvailable && showTime && isCurrentVC;
}
- (void)applicationWillEnterForeground:(NSNotification *)notification
{
[self performAfterDelay:0.7 block:^{
[self triggerAllMessages];
}];
}
- (void)appInfoSynced:(NSNotification *)notification
{
[self triggerAllMessages];
}
- (void)triggerAllMessages
{
for (NSString * messageName in [self.observers allKeys])
{
[self triggerMessage:messageName];
}
}
- (void)findVariantForMessage:(NSString *)messageName completion:(CompletionBlock)block
{
AppInfo * info = [AppInfo sharedInfo];
NSDictionary * imageVariants = [info featureValue:[self appFeatureNameForMessage:messageName] forKey:@"Variants"];
// checking which types are actual
NSMutableDictionary * actualImageVariants = [[NSMutableDictionary alloc] init];
for (NSString * type in [imageVariants allKeys])
{
NSDictionary * imageParameters = imageVariants[type];
BOOL inTimeInterval = YES;
NSArray * timeLimitInterval = imageParameters[@"TimeLimit"];
if ([timeLimitInterval count] == 2)
{
NSTimeInterval timeValue = [[NSDate date] timeIntervalSinceDate:info.firstLaunchDate];
inTimeInterval = timeValue >= [timeLimitInterval[0] doubleValue] && timeValue <= [timeLimitInterval[1] doubleValue];
}
BOOL inLaunchInterval = YES;
NSArray * launchCountInterval = imageParameters[@"LaunchCount"];
if ([launchCountInterval count] == 2)
inLaunchInterval = info.launchCount >= [launchCountInterval[0] doubleValue] && info.launchCount <= [launchCountInterval[1] doubleValue];
BOOL inViewsNumberInterval = YES;
NSNumber * viewsNumberLimit = imageParameters[@"ViewsNumberLimit"];
NSNumber * viewsNumber = [self showsNumberOfMessage:messageName];
if (viewsNumberLimit && [viewsNumber integerValue] >= [viewsNumberLimit integerValue])
inViewsNumberInterval = NO;
BOOL shouldShow = [imageParameters[@"Online"] boolValue] ? [info.reachability isReachable] : YES;
NSString * idiom = imageParameters[@"Idiom"];
BOOL rightIdiom = YES;
if ([idiom isEqualToString:@"Pad"] && !IPAD)
rightIdiom = NO;
else if ([idiom isEqualToString:@"Phone"] && IPAD)
rightIdiom = NO;
if (inTimeInterval && inLaunchInterval && inViewsNumberInterval && shouldShow && rightIdiom)
actualImageVariants[type] = imageVariants[type];
}
// getting random type from actual
NSInteger chancesSum = 0;
for (NSString * type in [actualImageVariants allKeys])
{
chancesSum += [actualImageVariants[type][@"Chance"] integerValue];
}
if (!chancesSum)
{
block(nil, nil);
return;
}
NSInteger rand = arc4random() % chancesSum;
NSString * imageType;
NSInteger currentChance = 0;
for (NSString * type in [actualImageVariants allKeys])
{
currentChance += [actualImageVariants[type][@"Chance"] integerValue];
if (currentChance > rand)
{
imageType = type;
break;
}
}
[self downloadAndSaveImagesForMessage:messageName imageType:imageType completion:block];
}
- (void)downloadAndSaveImagesForMessage:(NSString *)messageName imageType:(NSString *)imageType completion:(CompletionBlock)block
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSMutableArray * images = [[NSMutableArray alloc] init];
NSString * language = [self languageForMessage:messageName imageType:imageType];
if (!language)
{
block(nil, imageType);
return;
}
NSArray * imageNames = [self imageNamesForMessage:messageName imageType:imageType];
for (NSString * imageName in imageNames)
{
UIImage * image = [self getImageWithName:imageName language:language];
if (image)
[images addObject:image];
}
dispatch_async(dispatch_get_main_queue(), ^{
block(images, imageType);
});
});
}
- (UIImage *)getImageWithName:(NSString *)imageName language:(NSString *)language
{
NSString * imagePath = [self imagePathForImageWithName:imageName language:language];
UIImage * image = [[UIImage alloc] initWithContentsOfFile:imagePath];
if (image)
{
return image;
}
else
{
NSString * urlString = [NSString stringWithFormat:@"http://application.server/ios/messages/%@/%@", language, imageName];
NSURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSHTTPURLResponse * response;
NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if ([response statusCode] == 200)
{
[data writeToFile:imagePath atomically:YES];
return [UIImage imageWithData:data scale:[UIScreen mainScreen].scale];
}
}
return nil;
}
- (NSArray *)imageNamesForMessage:(NSString *)messageName imageType:(NSString *)imageType
{
NSString * idiom = IPAD ? @"Ipad" : @"Iphone";
if ([messageName isEqualToString:InAppMessageInterstitial])
{
CGSize screenSize = [UIScreen mainScreen].bounds.size;
NSInteger max = MAX(screenSize.width, screenSize.height);
NSInteger min = MIN(screenSize.width, screenSize.height);
NSMutableArray * imageNames = [[NSMutableArray alloc] init];
[imageNames addObject:[self imageNameForMessage:messageName imageType:imageType idiom:idiom height:max]];
if (IPAD)
[imageNames addObject:[self imageNameForMessage:messageName imageType:imageType idiom:idiom height:min]];
return imageNames;
}
else if ([messageName isEqualToString:InAppMessageBanner])
{
return @[[self imageNameForMessage:messageName imageType:imageType idiom:idiom height:0]];
}
return nil;
}
- (NSString *)imageNameForMessage:(NSString *)messageName imageType:(NSString *)imageType idiom:(NSString *)idiom height:(NSInteger)height
{
CGFloat const scale = [UIScreen mainScreen].scale;
NSString * scaleString = @"";
if (scale == 2)
scaleString = @"@2x";
else if (scale == 3)
scaleString = @"@3x";
NSString * heightString = height ? [NSString stringWithFormat:@"%i", height] : @"";
return [NSString stringWithFormat:@"%@_%@_%@%@%@.png", messageName, imageType, idiom, heightString, scaleString];
}
- (NSString *)imagePathForImageWithName:(NSString *)imageName language:(NSString *)language
{
NSString * rootPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
NSString * languagePath = [rootPath stringByAppendingPathComponent:language];
if (![[NSFileManager defaultManager] fileExistsAtPath:languagePath])
[[NSFileManager defaultManager] createDirectoryAtPath:languagePath withIntermediateDirectories:NO attributes:nil error:nil];
return [languagePath stringByAppendingPathComponent:imageName];
}
- (NSString *)languageForMessage:(NSString *)messageName imageType:(NSString *)imageType
{
NSDictionary * imageParameters = [[AppInfo sharedInfo] featureValue:[self appFeatureNameForMessage:messageName] forKey:@"Variants"];
NSArray * languages = imageParameters[imageType][@"Languages"];
NSString * defaultLanguage = @"en";
NSString * messageLanguage = ([languages containsObject:defaultLanguage]) ? defaultLanguage : nil;
for (NSString * preferredLanguage in [NSLocale preferredLanguages])
{
// We don't support country specific languages yet, so we strip country code.
NSString * cleanPreferredLanguage = [preferredLanguage substringToIndex:2];
if ([languages containsObject:cleanPreferredLanguage])
{
messageLanguage = cleanPreferredLanguage;
break;
}
}
if (messageLanguage)
return messageLanguage;
// if message does not use localized text we should pass '*' instead of language name
// then, message image must be in /all directory on server
if ([languages containsObject:@"*"])
return @"all";
return nil;
}
- (NSString *)appFeatureNameForMessage:(NSString *)messageName
{
if ([messageName isEqualToString:InAppMessageInterstitial])
return AppFeatureInterstitial;
else if ([messageName isEqualToString:InAppMessageBanner])
return AppFeatureBanner;
else
return nil;
}
- (NSDate *)lastShowTimeOfMessage:(NSString *)messageName
{
NSString * key = [NSString stringWithFormat:@"Show%@", messageName];
return [[NSUserDefaults standardUserDefaults] objectForKey:key];
}
- (void)updateShowTimeOfMessage:(NSString *)messageName
{
NSString * key = [NSString stringWithFormat:@"Show%@", messageName];
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (NSNumber *)showsNumberOfMessage:(NSString *)messageName
{
NSString * key = [NSString stringWithFormat:@"ShowsNumber%@", messageName];
NSNumber * showsNumber = [[NSUserDefaults standardUserDefaults] objectForKey:key];
return showsNumber ? showsNumber : @(0);
}
- (void)increaseShowsNumberOfMessage:(NSString *)messageName
{
NSString * key = [NSString stringWithFormat:@"ShowsNumber%@", messageName];
NSNumber * showsNumber = [[NSUserDefaults standardUserDefaults] objectForKey:key];
showsNumber = showsNumber ? @([showsNumber integerValue] + 1) : @(1);
[[NSUserDefaults standardUserDefaults] setObject:showsNumber forKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}
#pragma mark - InterstitialView callbacks
- (void)interstitialViewWillOpen:(InterstitialView *)interstitial
{
[self updateShowTimeOfMessage:interstitial.inAppMessageName];
[self increaseShowsNumberOfMessage:interstitial.inAppMessageName];
NSString * eventName = [NSString stringWithFormat:@"%@ showed", interstitial.inAppMessageName];
[[Statistics instance] logInAppMessageEvent:eventName imageType:interstitial.imageType];
}
- (void)interstitialView:(InterstitialView *)interstitial didCloseWithResult:(InterstitialViewResult)result
{
NSString * eventName;
if (result == InterstitialViewResultClicked)
eventName = [NSString stringWithFormat:@"%@ clicked", interstitial.inAppMessageName];
else if (result == InterstitialViewResultDismissed)
eventName = [NSString stringWithFormat:@"%@ dismissed", interstitial.inAppMessageName];
[[Statistics instance] logInAppMessageEvent:eventName imageType:interstitial.imageType];
if (result == InterstitialViewResultClicked)
{
if ([interstitial.imageType hasPrefix:MWMProVersionPrefix])
{
[[UIApplication sharedApplication] openProVersionFrom:@"ios_interstitial"];
}
else
{
NSDictionary * imageVariants = [[AppInfo sharedInfo] featureValue:AppFeatureBanner forKey:@"Variants"];
NSString * url = imageVariants[interstitial.imageType][@"URI"];
if (url)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
}
}
#pragma mark - BannerImageView callbacks
- (void)bannerTap:(UITapGestureRecognizer *)sender
{
NSString * imageType = ((BannerImageView *)sender.view).imageType;
NSString * eventName = [NSString stringWithFormat:@"%@ clicked", InAppMessageBanner];
[[Statistics instance] logInAppMessageEvent:eventName imageType:imageType];
if ([imageType hasPrefix:MWMProVersionPrefix])
{
[[UIApplication sharedApplication] openProVersionFrom:@"ios_banner"];
}
else
{
NSDictionary * imageVariants = [[AppInfo sharedInfo] featureValue:AppFeatureBanner forKey:@"Variants"];
NSString * url = imageVariants[imageType][@"URI"];
if (url)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
}
#pragma mark - Other
- (NSMutableDictionary *)observers
{
if (!_observers)
_observers = [[NSMutableDictionary alloc] init];
return _observers;
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end

View file

@ -133,8 +133,6 @@ typedef void (^CompletionHandler)(UIBackgroundFetchResult);
[vc presentViewController:activityVC animated:YES completion:nil];
}
}
else if ([action isEqualToString:@"AppStoreProVersion"])
[[UIApplication sharedApplication] openProVersionFrom:@"ios_free_pro_version_notification"];
}
#pragma mark - Special Notifications

View file

@ -6,8 +6,7 @@
#import "UIViewController+Navigation.h"
#import "ShareActionSheet.h"
#import "AppInfo.h"
#import "InAppMessagesManager.h"
#import "InterstitialView.h"
//#import "InterstitialView.h"
#import "MoreAppsVC.h"
#import "ContainerView.h"
#import "ToolbarView.h"
@ -36,9 +35,7 @@
#define ALERT_VIEW_FACEBOOK 1
#define ALERT_VIEW_APPSTORE 2
#define ALERT_VIEW_BOOKMARKS 4
#define ALERT_VIEW_DOWNLOADER 5
#define ALERT_VIEW_PRO_VERSION_ROUTING 6
#define ALERT_VIEW_ROUTING_DISCLAIMER 7
#define FACEBOOK_URL @"http://www.facebook.com/MapsWithMe"
#define FACEBOOK_SCHEME @"fb://profile/111923085594432"
@ -586,17 +583,7 @@
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self invalidate];
#ifdef OMIM_LITE
InAppMessagesManager * manager = [InAppMessagesManager sharedManager];
[manager registerController:self forMessage:InAppMessageInterstitial];
[manager registerController:self forMessage:InAppMessageBanner];
[manager triggerMessage:InAppMessageInterstitial];
[manager triggerMessage:InAppMessageBanner];
#endif
}
- (void)viewDidLoad
@ -642,8 +629,6 @@
{
GetFramework().SetUpdatesEnabled(false);
[[InAppMessagesManager sharedManager] unregisterControllerFromAllMessages:self];
[super viewWillDisappear:animated];
}
@ -795,11 +780,6 @@
[self showDialogWithMessageID:message];
}
});
f.SetBuyProListener([self]()
{
[self showBuyProDialog];
});
}
NSLog(@"MapViewController initWithCoder Ended");
@ -813,7 +793,7 @@
int const outOfDateCount = GetFramework().GetCountryTree().GetActiveMapLayout().GetOutOfDateCount();
bool isFirstRoutingRun = true;
(void)Settings::Get("IsFirstRoutingRun", isFirstRoutingRun);
if (GetPlatform().IsPro() && isFirstRoutingRun && outOfDateCount > 0)
if (isFirstRoutingRun && outOfDateCount > 0)
{
[[[UIAlertView alloc] initWithTitle:L(@"routing_update_maps") message:nil delegate:self cancelButtonTitle:L(@"ok") otherButtonTitles:nil] show];
Settings::Set("IsFirstRoutingRun", false);
@ -832,13 +812,6 @@
[alertView show];
}
- (void)showBuyProDialog
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:L(@"routing_failed_buy_pro") message:nil delegate:self cancelButtonTitle:L(@"cancel") otherButtonTitles:L(@"get_it_now"), nil];
alert.tag = ALERT_VIEW_PRO_VERSION_ROUTING;
[alert show];
}
#pragma mark - Getters
- (BottomMenu *)bottomMenu
@ -1044,17 +1017,8 @@
[self.searchView setState:SearchViewStateFullscreen animated:YES withCallback:YES];
else if ([itemName isEqualToString:@"Bookmarks"])
{
if (GetPlatform().IsPro())
{
BookmarksRootVC * vc = [[BookmarksRootVC alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
else
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:L(@"bookmarks_in_pro_version") message:nil delegate:self cancelButtonTitle:L(@"cancel") otherButtonTitles:L(@"get_it_now"), nil];
alert.tag = ALERT_VIEW_BOOKMARKS;
[alert show];
}
BookmarksRootVC * vc = [[BookmarksRootVC alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
else if ([itemName isEqualToString:@"Menu"])
[self.bottomMenu setMenuHidden:NO animated:YES];
@ -1064,12 +1028,6 @@
- (void)tryToBuildRoute
{
if (!GetPlatform().HasRouting())
{
[self showBuyProDialog];
return;
}
[self.routeView updateWithInfo:nil];
[self.containerView.placePage showBuildingRoutingActivity:YES];
GetFramework().BuildRoute([self.containerView.placePage pinPoint]);
@ -1192,11 +1150,6 @@
[[[UIAlertView alloc] initWithTitle:L(@"unknown_current_position") message:nil delegate:nil cancelButtonTitle:L(@"ok") otherButtonTitles:nil] show];
}
}
else if ([itemName isEqualToString:@"MWMPro"])
{
[[Statistics instance] logProposalReason:@"Pro button in menu" withAnswer:@"YES"];
[[UIApplication sharedApplication] openProVersionFrom:@"ios_bottom_menu"];
}
else
{
[menu setMenuHidden:YES animated:YES];
@ -1225,10 +1178,7 @@
else if (buttonIndex == 1)
{
dlg_settings::SaveResult(dlg_settings::AppStore, dlg_settings::OK);
if (GetPlatform().IsPro())
[[UIApplication sharedApplication] rateProVersionFrom:@"ios_pro_popup"];
else
[[UIApplication sharedApplication] rateLiteVersionFrom:@"ios_lite_popup"];
[[UIApplication sharedApplication] rateVersionFrom:@"ios_pro_popup"];
}
else if (buttonIndex == 2)
{
@ -1258,41 +1208,6 @@
}
break;
}
case ALERT_VIEW_BOOKMARKS:
{
if (buttonIndex == alertView.cancelButtonIndex)
{
[[Statistics instance] logProposalReason:@"Bookmark Screen" withAnswer:@"NO"];
}
else
{
[[Statistics instance] logProposalReason:@"Bookmark Screen" withAnswer:@"YES"];
[[UIApplication sharedApplication] openProVersionFrom:@"ios_toolabar_bookmarks"];
}
break;
}
case ALERT_VIEW_DOWNLOADER:
{
if (buttonIndex != alertView.cancelButtonIndex)
{
CountryTreeVC * vc = [[CountryTreeVC alloc] initWithNodePosition:-1];
[self.navigationController pushViewController:vc animated:YES];
}
break;
}
case ALERT_VIEW_PRO_VERSION_ROUTING:
{
if (buttonIndex == alertView.cancelButtonIndex)
{
[[Statistics instance] logProposalReason:@"Routing Menu" withAnswer:@"NO"];
}
else
{
[[UIApplication sharedApplication] openProVersionFrom:@"ios_routing_alert"];
[[Statistics instance] logProposalReason:@"Routing Menu" withAnswer:@"YES"];
}
break;
}
case ALERT_VIEW_ROUTING_DISCLAIMER:
{
if (buttonIndex == alertView.cancelButtonIndex)

View file

@ -166,14 +166,6 @@ void InitLocalizedStrings()
[m_window setRootViewController:m_navController];
[m_window makeKeyAndVisible];
if (GetPlatform().HasBookmarks())
{
int val = 0;
if (Settings::Get("NumberOfBookmarksPerSession", val))
[[Statistics instance] logEvent:@"Bookmarks Per Session" withParameters:@{@"Number of bookmarks" : [NSNumber numberWithInt:val]}];
Settings::Set("NumberOfBookmarksPerSession", 0);
}
[self subscribeToStorage];
[self customizeAppearance];

View file

@ -17,7 +17,6 @@
@end
NSString * TitleMWM;
NSString * TitleGuides;
NSString * TitleAds;
@ -57,7 +56,6 @@ using namespace::storage;
}
self.guideRegions = [guideRegions sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"Country" ascending:YES]]];
TitleMWM = @"maps.me pro";
TitleGuides = L(@"more_apps_guides");
TitleAds = L(@"more_apps_ads");
@ -72,9 +70,6 @@ using namespace::storage;
{
NSMutableArray * mData = [[NSMutableArray alloc] init];
if (!GetPlatform().IsPro())
[mData addObject:TitleMWM];
[mData addObject:TitleGuides];
if ([[AppInfo sharedInfo] featureAvailable:AppFeatureMoreAppsBanner])
@ -101,19 +96,13 @@ using namespace::storage;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * title = self.data[indexPath.section];
if ([title isEqualToString:TitleMWM] || [title isEqualToString:TitleGuides])
if ([title isEqualToString:TitleGuides])
{
MoreAppsCell * cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell)
cell = [[MoreAppsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
if ([title isEqualToString:TitleMWM])
{
cell.textLabel.text = TitleMWM;
cell.imageView.image = [self iconImageWithImage:[UIImage imageNamed:@"MapsWithMeProIcon"]];
[cell setFree:NO];
}
else if ([title isEqualToString:TitleGuides])
if ([title isEqualToString:TitleGuides])
{
NSDictionary * guide = self.guideRegions[indexPath.row];
cell.textLabel.text = guide[@"Country"];
@ -142,12 +131,7 @@ using namespace::storage;
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSString * title = self.data[indexPath.section];
if ([title isEqualToString:TitleMWM])
{
[[Statistics instance] logEvent:@"MoreApps MWM clicked"];
[[UIApplication sharedApplication] openProVersionFrom:@"ios_more_apps"];
}
else if ([title isEqualToString:TitleGuides])
if ([title isEqualToString:TitleGuides])
{
[[Statistics instance] logEvent:@"MoreApps guide clicked" withParameters:@{@"Guide" : self.guideRegions[indexPath.row][@"GuideName"]}];
NSDictionary * guide = self.guideRegions[indexPath.row];
@ -158,9 +142,7 @@ using namespace::storage;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSString * title = self.data[section];
if ([title isEqualToString:TitleMWM])
return 1;
else if ([title isEqualToString:TitleGuides])
if ([title isEqualToString:TitleGuides])
return [self.guideRegions count];
else if ([title isEqualToString:TitleAds])
return 1;
@ -180,7 +162,7 @@ using namespace::storage;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * title = self.data[indexPath.section];
if ([title isEqualToString:TitleMWM] || [title isEqualToString:TitleGuides])
if ([title isEqualToString:TitleGuides])
return 44;
else
return self.bannerView.height;

View file

@ -1051,40 +1051,32 @@ typedef NS_ENUM(NSUInteger, CellRow)
- (void)addBookmark
{
if (GetPlatform().IsPro())
Framework & framework = GetFramework();
if (m_bookmarkData)
{
Framework & framework = GetFramework();
if (m_bookmarkData)
{
BookmarkCategory const * category = framework.GetBmCategory(m_categoryIndex);
if (!category)
m_categoryIndex = framework.LastEditedBMCategory();
BookmarkCategory const * category = framework.GetBmCategory(m_categoryIndex);
if (!category)
m_categoryIndex = framework.LastEditedBMCategory();
size_t const bookmarkIndex = framework.GetBookmarkManager().AddBookmark(m_categoryIndex, [self pinPoint], *m_bookmarkData);
m_mark.reset(category->GetBookmark(bookmarkIndex)->Copy());
}
else
{
size_t const categoryIndex = framework.LastEditedBMCategory();
BookmarkData data = BookmarkData([[self newBookmarkName] UTF8String], framework.LastEditedBMType());
size_t const bookmarkIndex = framework.AddBookmark(categoryIndex, [self pinPoint], data);
BookmarkCategory const * category = framework.GetBmCategory(categoryIndex);
m_mark.reset(category->GetBookmark(bookmarkIndex)->Copy());
}
framework.ActivateUserMark([self userMark]);
framework.Invalidate();
_title = nil;
_types = nil;
[self reloadHeader];
[self updateBookmarkStateAnimated:YES];
[self updateBookmarkViewsAlpha:YES];
size_t const bookmarkIndex = framework.GetBookmarkManager().AddBookmark(m_categoryIndex, [self pinPoint], *m_bookmarkData);
m_mark.reset(category->GetBookmark(bookmarkIndex)->Copy());
}
else
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:L(@"bookmarks_in_pro_version") message:nil delegate:self cancelButtonTitle:L(@"cancel") otherButtonTitles:L(@"get_it_now"), nil];
[alert show];
size_t const categoryIndex = framework.LastEditedBMCategory();
BookmarkData data = BookmarkData([[self newBookmarkName] UTF8String], framework.LastEditedBMType());
size_t const bookmarkIndex = framework.AddBookmark(categoryIndex, [self pinPoint], data);
BookmarkCategory const * category = framework.GetBmCategory(categoryIndex);
m_mark.reset(category->GetBookmark(bookmarkIndex)->Copy());
}
framework.ActivateUserMark([self userMark]);
framework.Invalidate();
_title = nil;
_types = nil;
[self reloadHeader];
[self updateBookmarkStateAnimated:YES];
[self updateBookmarkViewsAlpha:YES];
}
- (void)shareCellDidPressApiButton:(PlacePageShareCell *)cell
@ -1107,19 +1099,6 @@ typedef NS_ENUM(NSUInteger, CellRow)
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == alertView.cancelButtonIndex)
{
[[Statistics instance] logProposalReason:@"Add Bookmark" withAnswer:@"NO"];
}
else
{
[[Statistics instance] logProposalReason:@"Add Bookmark" withAnswer:@"YES"];
[[UIApplication sharedApplication] openProVersionFrom:@"ios_pp_bookmark"];
}
}
- (CopyLabel *)titleLabel
{
if (!_titleLabel)

View file

@ -112,7 +112,7 @@ typedef NS_ENUM(NSUInteger, CellType)
};
@interface SearchView () <UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, SearchBarDelegate, LocationObserver, UIAlertViewDelegate>
@interface SearchView () <UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, SearchBarDelegate, LocationObserver>
@property (nonatomic) UITableView * tableView;
@property (nonatomic) SolidTouchImageView * topBackgroundView;
@ -420,47 +420,40 @@ static void onSearchResultCallback(search::Results const & results)
- (void)showOnMap
{
if (GetPlatform().IsPro())
Framework & f = GetFramework();
if (f.ShowAllSearchResults() == 0)
{
Framework & f = GetFramework();
if (f.ShowAllSearchResults() == 0)
NSString * secondSentence = @"";
// Country in the viewport should be downloaded
if (!f.IsCountryLoaded(f.GetViewportCenter()))
{
NSString * secondSentence = @"";
// Country in the viewport should be downloaded
if (!f.IsCountryLoaded(f.GetViewportCenter()))
secondSentence = [NSString stringWithFormat:L(@"download_viewport_country_to_search"),
[NSString stringWithUTF8String:f.GetCountryName(f.GetViewportCenter()).c_str()]];
}
else
{
// Country in the current location should be downloaded
CLLocation * lastLocation = [[MapsAppDelegate theApp].m_locationManager lastLocation];
if (lastLocation && !f.IsCountryLoaded(MercatorBounds::FromLatLon(lastLocation.coordinate.latitude,
lastLocation.coordinate.longitude)))
{
secondSentence = [NSString stringWithFormat:L(@"download_viewport_country_to_search"),
secondSentence = [NSString stringWithFormat:L(@"download_location_country"),
[NSString stringWithUTF8String:f.GetCountryName(f.GetViewportCenter()).c_str()]];
}
else
{
// Country in the current location should be downloaded
CLLocation * lastLocation = [[MapsAppDelegate theApp].m_locationManager lastLocation];
if (lastLocation && !f.IsCountryLoaded(MercatorBounds::FromLatLon(lastLocation.coordinate.latitude,
lastLocation.coordinate.longitude)))
{
secondSentence = [NSString stringWithFormat:L(@"download_location_country"),
[NSString stringWithUTF8String:f.GetCountryName(f.GetViewportCenter()).c_str()]];
}
}
NSString * message = [NSString stringWithFormat:@"%@. %@", L(@"no_search_results_found"), secondSentence];
ToastView * toastView = [[ToastView alloc] initWithMessage:message];
[toastView show];
}
search::SearchParams params;
params.m_query = [[self.searchBar.textField.text precomposedStringWithCompatibilityMapping] UTF8String];
params.SetInputLocale([GetKeyboardInputLanguage() UTF8String]);
f.StartInteractiveSearch(params);
[self setState:SearchViewStateResults animated:YES withCallback:YES];
}
else
{
[self showBuyProMessage];
NSString * message = [NSString stringWithFormat:@"%@. %@", L(@"no_search_results_found"), secondSentence];
ToastView * toastView = [[ToastView alloc] initWithMessage:message];
[toastView show];
}
search::SearchParams params;
params.m_query = [[self.searchBar.textField.text precomposedStringWithCompatibilityMapping] UTF8String];
params.SetInputLocale([GetKeyboardInputLanguage() UTF8String]);
f.StartInteractiveSearch(params);
[self setState:SearchViewStateResults animated:YES withCallback:YES];
}
- (BOOL)isShowingCategories
@ -494,12 +487,6 @@ static void onSearchResultCallback(search::Results const & results)
return self.width > self.height && !IPAD;
}
- (void)showBuyProMessage
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:L(@"search_available_in_pro_version") message:nil delegate:self cancelButtonTitle:L(@"cancel") otherButtonTitles:L(@"get_it_now"), nil];
[alert show];
}
- (void)layoutSubviews
{
if (self.state == SearchViewStateFullscreen)
@ -648,16 +635,8 @@ static void onSearchResultCallback(search::Results const & results)
{
NSInteger const position = [self searchResultPositionForIndexPath:indexPath];
search::Result const & result = [self.wrapper resultWithPosition:position];
if (GetPlatform().IsPro())
{
[self setState:SearchViewStateHidden animated:YES withCallback:YES];
GetFramework().ShowSearchResult(result);
}
else
{
[self showBuyProMessage];
}
[self setState:SearchViewStateHidden animated:YES withCallback:YES];
GetFramework().ShowSearchResult(result);
break;
}
case CellTypeSuggest:
@ -673,19 +652,6 @@ static void onSearchResultCallback(search::Results const & results)
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == alertView.cancelButtonIndex)
{
[[Statistics instance] logProposalReason:@"Search Screen" withAnswer:@"NO"];
}
else
{
[[UIApplication sharedApplication] openProVersionFrom:@"ios_search_alert"];
[[Statistics instance] logProposalReason:@"Search Screen" withAnswer:@"YES"];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (!scrollView.decelerating && scrollView.dragging)

View file

@ -1,26 +0,0 @@
<?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">
<array>
<dict>
<key>NotifiicationShareImage</key>
<string></string>
<key>NotificationAction</key>
<string>AppStoreProVersion</string>
<key>NotificationID</key>
<string>ProVersionForFree</string>
<key>NotificationDate</key>
<string>2014-12-03T19:00:00</string>
<key>NotificationExpirationDate</key>
<string>2016-12-01T19:00:00</string>
<key>NotificationViewsLimit</key>
<integer>1</integer>
<key>NotificationLocalizedBodyKey</key>
<string>free_pro_version_notification_lite</string>
<key>NotificationLocalizedAlertBodyKey</key>
<string>free_pro_version_notification_alert</string>
<key>NotificationLocalizedShareTextKey</key>
<string></string>
</dict>
</array>
</plist>

View file

@ -1,32 +0,0 @@
<?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">
<array>
<dict>
<key>NotificationLocalizedShareEmailBodyKey</key>
<string>free_pro_version_share_email_text</string>
<key>NotificationLocalizedShareEmailSubjectKey</key>
<string>free_pro_version_share_email_subject</string>
<key>NotifiicationShareImage</key>
<string>AppIsFree</string>
<key>NotificationAction</key>
<string>Share</string>
<key>NotificationID</key>
<string>ProVersionForFree</string>
<key>NotificationDate</key>
<string>2014-12-03T19:00:00</string>
<key>NotificationExpirationDate</key>
<string>2016-12-01T19:00:00</string>
<key>NotificationViewsLimit</key>
<integer>1</integer>
<key>NotificationLocalizedBodyKey</key>
<string>free_pro_version_notification_pro</string>
<key>NotificationLocalizedAlertBodyKey</key>
<string></string>
<key>NotificationLocalizedShareTextKey</key>
<string>free_pro_version_share_message</string>
<key>NotificationShareLink</key>
<string>http://maps.me/get</string>
</dict>
</array>
</plist>

View file

@ -1,5 +0,0 @@
<?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">
<array/>
</plist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,23 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x",
"filename" : "MapsWithMeProIcon.png"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "MapsWithMeProIcon@2x.png"
},
{
"idiom" : "universal",
"scale" : "3x",
"filename" : "60x60@2x.png"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Some files were not shown because too many files have changed in this diff Show more