Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2013-02-12 23:34:41 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:50:48 +0300
commit51e13fc2e8f21b1681899306355806760f8dc9ef (patch)
tree8011b80db24beffa3072f8b51ecfff046163566b /android
parent393cd94d36a0aa97fd5ff96b435b3bdcff941121 (diff)
[android] [bookmarks] Save previous category name and bookmark type (color).
Diffstat (limited to 'android')
-rw-r--r--android/jni/com/mapswithme/maps/Framework.cpp45
-rw-r--r--android/jni/com/mapswithme/maps/Framework.hpp12
-rw-r--r--android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp30
3 files changed, 60 insertions, 27 deletions
diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp
index 7fe8a1e8dc..3a4ce1c131 100644
--- a/android/jni/com/mapswithme/maps/Framework.cpp
+++ b/android/jni/com/mapswithme/maps/Framework.cpp
@@ -57,6 +57,9 @@ namespace android
size_t const measurementsCount = 5;
m_sensors[0].SetCount(measurementsCount);
m_sensors[1].SetCount(measurementsCount);
+
+ m_bmCategory = m_work.GetStringsBundle().GetString("my_places");
+ m_bmType = "placemark-red";
}
Framework::~Framework()
@@ -676,24 +679,26 @@ namespace android
{
BookmarkBalloon * balloon = GetBookmarkBalloon();
- BookmarkAndCategory bac = m_work.GetBookmark(m_work.GtoP(balloon->glbPivot()));
+ BookmarkAndCategory bac = m_work.GetBookmark(m_work.GtoP(balloon->getBookmarkPivot()));
if (ValidateBookmarkAndCategory(bac))
{
- m_balloonClickListener(bac);
+ // add new bookmark
+ Bookmark bm(balloon->glbPivot(), balloon->bookmarkName(), m_bmType);
+ bac = AddBookmark(bm);
}
else
{
BookmarkCategory * cat;
if (m_work.GetBmCategoriesCount() == 0)
{
- m_work.AddBookmark(m_work.GetStringsBundle().GetString("my_places"), Bookmark(balloon->glbPivot(), balloon->bookmarkName(), "placemark-red"));
+ m_work.AddBookmark(m_work.GetStringsBundle().GetString("my_places"), Bookmark(balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red"));
cat = m_work.GetBmCategory(m_work.GetBmCategoriesCount()-1);
}
else
{
cat = m_work.GetBmCategory(m_work.GetBmCategoriesCount()-1);
- Bookmark bm(balloon->glbPivot(), balloon->bookmarkName(), "placemark-red");
- m_work.AddBookmark(cat->GetName(), bm);
+ LOG(LDEBUG,("Paladin", (balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red")));
+ m_work.AddBookmark(cat->GetName(), Bookmark(balloon->getBookmarkPivot(), balloon->getBookmarkName(), "placemark-red"));
}
cat->SaveToKMLFile();
int catSize = cat->GetBookmarksCount() - 1;
@@ -715,13 +720,6 @@ namespace android
m_balloonClickListener.clear();
}
- BookmarkBalloon * Framework::GetBookmarkBalloon()
- {
- if (!m_bmBaloon)
- CreateBookmarkBalloon();
- return m_bmBaloon.get();
- }
-
void Framework::CreateBookmarkBalloon()
{
CHECK(m_work.GetGuiController(), ());
@@ -748,4 +746,27 @@ namespace android
m_bmBaloon->setOnClickListener(bind(&Framework::OnBalloonClick, this, _1));
m_work.GetGuiController()->AddElement(m_bmBaloon);
}
+
+ gui::BookmarkBalloon * Framework::GetBookmarkBalloon()
+ {
+ if (!m_bmBaloon)
+ CreateBookmarkBalloon();
+ return m_bmBaloon.get();
+ }
+
+ BookmarkAndCategory Framework::AddBookmark(Bookmark const & bm)
+ {
+ BookmarkAndCategory const bac = m_work.AddBookmarkEx(m_bmCategory, bm);
+ BookmarkCategory * cat = m_work.GetBmCategory(bac.first);
+ cat->SetVisible(true);
+ cat->SaveToKMLFile();
+ return bac;
+ }
+
+ void Framework::AddBookmark(string const & category, Bookmark const & bm)
+ {
+ m_bmCategory = category;
+ m_bmType = bm.GetType();
+ (void) AddBookmark(bm);
+ }
}
diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp
index 2272488230..a2316cc74f 100644
--- a/android/jni/com/mapswithme/maps/Framework.hpp
+++ b/android/jni/com/mapswithme/maps/Framework.hpp
@@ -75,11 +75,14 @@ namespace android
return (bac.first > -1 && bac.second > -1);
}
- shared_ptr<BookmarkBalloon> m_bmBaloon;
+ shared_ptr<gui::BookmarkBalloon> m_bmBaloon;
+ string m_bmCategory;
+ string m_bmType;
void OnBalloonClick(gui::Element * e);
void CreateBookmarkBalloon();
- BookmarkBalloon * GetBookmarkBalloon();
+ gui::BookmarkBalloon * GetBookmarkBalloon();
+ BookmarkAndCategory AddBookmark(Bookmark const & bm);
public:
Framework();
@@ -137,11 +140,12 @@ namespace android
void Scale(double k);
-
void AddBalloonClickListener(TOnBalloonClickListener const & l);
void RemoveBalloonClickListener();
-
void DeactivatePopup();
+
+ void AddBookmark(string const & category, Bookmark const & bm);
+
::Framework * NativeFramework();
};
}
diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp
index dbc3c66b91..794939bb65 100644
--- a/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp
+++ b/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp
@@ -43,11 +43,10 @@ extern "C"
Java_com_mapswithme_maps_bookmarks_data_Bookmark_nSetBookmarkDescription(
JNIEnv * env, jobject thiz, jint cat, jlong bmk, jstring newDescr)
{
- Bookmark b(*getBookmark(cat, bmk));
- b.SetDescription(jni::ToNativeString(env, newDescr));
- string name = frm()->GetBmCategory(cat)->GetName();
- frm()->AddBookmark(name, b);
- frm()->GetBmCategory(name)->SaveToKMLFile();
+ // do edit bookmark's description without AddBookmark routine
+ Bookmark * pBM = const_cast<Bookmark *>(getBookmark(cat, bmk));
+ pBM->SetDescription(jni::ToNativeString(env, newDescr));
+ frm()->GetBmCategory(cat)->SaveToKMLFile();
}
JNIEXPORT jstring JNICALL
@@ -77,15 +76,25 @@ extern "C"
Java_com_mapswithme_maps_bookmarks_data_Bookmark_nChangeBookmark(
JNIEnv * env, jobject thiz, jdouble x, jdouble y, jstring cat, jstring name, jstring type)
{
+ // get existing bookmark under point
BookmarkAndCategory bac = frm()->GetBookmark(frm()->GtoP(m2::PointD(x, y)));
- Bookmark b(m2::PointD(x, y), jni::ToNativeString(env, name), jni::ToNativeString(env, type));
+
+ // initialize new bookmark
+ Bookmark bm(m2::PointD(x, y), jni::ToNativeString(env, name), jni::ToNativeString(env, type));
if (bac.first > -1 && bac.second > -1)
+ bm.SetDescription(getBookmark(bac.first, bac.second)->GetDescription());
+
+ // add new bookmark
+ string const category = jni::ToNativeString(env, cat);
+ g_framework->AddBookmark(category, bm);
+
+ // save old bookmark's category
+ if (bac.first > -1)
{
- b.SetDescription(getBookmark(bac.first, bac.second)->GetDescription());
+ BookmarkCategory * pCat = frm()->GetBmCategory(bac.first);
+ if (pCat->GetName() != category)
+ pCat->SaveToKMLFile();
}
- frm()->AddBookmark(jni::ToNativeString(env, cat), b)->SaveToKMLFile();
- if (bac.first >= 0)
- frm()->GetBmCategory(bac.first)->SaveToKMLFile();
}
JNIEXPORT jobject JNICALL
@@ -122,5 +131,4 @@ extern "C"
{
return jni::GetNewParcelablePointD(env, getBookmark(cat, bmk)->GetOrg());
}
-
}