diff --git a/android/MapsWithMeLite.Samsung/AndroidManifest.xml b/android/MapsWithMeLite.Samsung/AndroidManifest.xml
index 8961dc81fb..d6562cdc54 100644
--- a/android/MapsWithMeLite.Samsung/AndroidManifest.xml
+++ b/android/MapsWithMeLite.Samsung/AndroidManifest.xml
@@ -37,6 +37,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/MapsWithMePro/AndroidManifest.xml b/android/MapsWithMePro/AndroidManifest.xml
index f3e90c4256..bb8c58e69e 100644
--- a/android/MapsWithMePro/AndroidManifest.xml
+++ b/android/MapsWithMePro/AndroidManifest.xml
@@ -40,24 +40,23 @@
-
+
-
+
-
+-->
diff --git a/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp b/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp
index b2255c9211..9c6bf5924c 100644
--- a/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp
+++ b/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp
@@ -325,4 +325,11 @@ extern "C"
{
return g_framework->NativeFramework()->AddBookmarksFile(jni::ToNativeString(env, path));
}
+
+ JNIEXPORT jboolean JNICALL
+ Java_com_mapswithme_maps_DownloadResourcesActivity_setViewPortByUrl(
+ JNIEnv * env, jobject thiz, jstring url)
+ {
+ return g_framework->SetViewportByUrl(jni::ToNativeString(env, url));
+ }
}
diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp
index 2284e0a1c4..96c6d17cac 100644
--- a/android/jni/com/mapswithme/maps/Framework.cpp
+++ b/android/jni/com/mapswithme/maps/Framework.cpp
@@ -722,4 +722,12 @@ namespace android
{
return m_work.Storage().IsDownloadInProgress();
}
+
+ bool Framework::SetViewportByUrl(string const & url)
+ {
+ //TODO this is weird hack, we should reconsider Android
+ // lifecycle handling design
+ m_doLoadState = false;
+ m_work.SetViewportByURL(url);
+ }
}
diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp
index 44040fc58d..87400a0d0c 100644
--- a/android/jni/com/mapswithme/maps/Framework.hpp
+++ b/android/jni/com/mapswithme/maps/Framework.hpp
@@ -142,6 +142,8 @@ namespace android
::Framework * NativeFramework();
bool IsDownloadingActive();
+
+ bool SetViewportByUrl(string const & ulr);
};
}
diff --git a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java
index 04bfee4106..813cb464bc 100644
--- a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java
+++ b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java
@@ -52,11 +52,13 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
private LocationService mLocationService = null;
private Index mCountryIndex = null;
- //TODO add geo processors
- private IntentProcessor[] mIntentProcessors = {new KmzIntentProcessor(),
- new Ge0IntentProcessor(),
- new GeoIntentProcessor(),
- new MapsWithMeIntentProcessor()};
+ private IntentProcessor[] mIntentProcessors = {new GeoIntentProcessor(),
+ /* uncomment code below when add
+ * appropriate schemes support
+ * */
+ //new Ge0IntentProcessor()
+ //new MapsWithMeIntentProcessor()
+ };
private void setDownloadMessage(int bytesToDownload)
{
@@ -349,9 +351,10 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
if (checkLiteProPackages(isPro))
return;
-
- dispatchIntent();
-
+ final boolean dispatched = dispatchIntent();
+ if (!dispatched) {
+ parseIntentForKMZFile();
+ }
setContentView(R.layout.download_resources);
@@ -370,18 +373,18 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
}
}
- private void dispatchIntent() {
+ private boolean dispatchIntent() {
if (getIntent() != null) {
final Intent intent = getIntent();
for (IntentProcessor ip : mIntentProcessors) {
if (ip.isIntentSupported(intent)) {
- Utils.toastShortcut(this, "Intent: " + intent.getData());
ip.processIntent(intent);
+ return true;
}
}
}
-
+ return false;
}
private String getExtensionFromMime(String mime)
@@ -470,7 +473,7 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
if (tmpFile != null)
tmpFile.delete();
- Toast.makeText(this, success ? R.string.load_kmz_successful : R.string.load_kmz_failed, Toast.LENGTH_LONG).show();
+ Utils.toastShortcut(this, success ? R.string.load_kmz_successful : R.string.load_kmz_failed);
}
}
}
@@ -598,23 +601,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
{
}
- private class KmzIntentProcessor implements IntentProcessor {
-
- @Override
- public boolean isIntentSupported(Intent intent) {
- final String scheme = intent.getScheme();
- return "file".equals(scheme) || "http".equals(scheme);
- }
-
- @Override
- public boolean processIntent(Intent intent) {
- // TODO temp impl
- parseIntentForKMZFile();
- return true;
- }
-
- }
-
private class GeoIntentProcessor implements IntentProcessor {
@Override
@@ -624,12 +610,12 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
@Override
public boolean processIntent(Intent intent) {
- // TODO Auto-generated method stub
- Utils.toastShortcut(DownloadResourcesActivity.this, this.getClass().getSimpleName());
- return false;
+ final Uri data = intent.getData();
+ return data != null ? setViewPortByUrl(data.toString()) : false;
}
}
+ @SuppressWarnings("unused")
private class Ge0IntentProcessor implements IntentProcessor {
@Override
@@ -639,24 +625,22 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
@Override
public boolean processIntent(Intent intent) {
- // TODO Auto-generated method stub
- Utils.toastShortcut(DownloadResourcesActivity.this, this.getClass().getSimpleName());
+ // TODO add ge0 parsing
return false;
}
}
+ @SuppressWarnings("unused")
private class MapsWithMeIntentProcessor implements IntentProcessor {
@Override
public boolean isIntentSupported(Intent intent) {
- // TODO Auto-generated method stub
return "mapswithme".equals(intent.getScheme());
}
@Override
public boolean processIntent(Intent intent) {
- // TODO Auto-generated method stub
- Utils.toastShortcut(DownloadResourcesActivity.this, this.getClass().getSimpleName());
+ // TODO add mapswithme parsing
return false;
}
@@ -669,4 +653,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
private native Index findIndexByPos(double lat, double lon);
private native void cancelCurrentFile();
private native boolean loadKMZFile(String path);
+ //===============S=C=H=E=M=E======================//
+ private native boolean setViewPortByUrl(String url);
}