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-18 21:15:09 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:51:00 +0300
commite502fd04ddcac69e6352cf952d02488a44c12dfe (patch)
tree321c9397ac3b2a145a6bb3bdf2b4a42fcd26ef5d /android
parentd5b4b401233ae86dcc10783f673909a94cf6c9b9 (diff)
[android] [bookmarks] Always keep category name unique.
Diffstat (limited to 'android')
-rw-r--r--android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp39
-rw-r--r--android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java4
-rw-r--r--android/src/com/mapswithme/maps/bookmarks/BookmarkListActivity.java9
-rw-r--r--android/src/com/mapswithme/maps/bookmarks/ChooseBookmarkCategoryActivity.java13
-rw-r--r--android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java47
-rw-r--r--android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java37
6 files changed, 74 insertions, 75 deletions
diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp
index e48832300e..3de2150e3a 100644
--- a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp
+++ b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp
@@ -10,7 +10,8 @@ namespace
extern "C"
{
JNIEXPORT jobject JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetPOI(JNIEnv * env, jobject thiz, jdouble px, jdouble py)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetPOI(
+ JNIEnv * env, jobject thiz, jdouble px, jdouble py)
{
Framework::AddressInfo adInfo;
m2::PointD pxPivot;
@@ -25,7 +26,8 @@ extern "C"
}
JNIEXPORT jobject JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetAddressInfo(JNIEnv * env, jobject thiz, jdouble px, jdouble py)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetAddressInfo(
+ JNIEnv * env, jobject thiz, jdouble px, jdouble py)
{
m2::PointD point(px, py);
Framework::AddressInfo adInfo;
@@ -34,42 +36,31 @@ extern "C"
}
JNIEXPORT void JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nShowBookmark(JNIEnv * env, jobject thiz, jint c, jint b)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nShowBookmark(
+ JNIEnv * env, jobject thiz, jint c, jint b)
{
frm()->ShowBookmark(*(frm()->GetBmCategory(c)->GetBookmark(b)));
frm()->SaveState();
}
JNIEXPORT void JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_putBookmark(
- JNIEnv * env, jobject thiz, jint px, jint py, jstring bookmarkName, jstring categoryName)
- {
- Bookmark bm(frm()->PtoG(m2::PointD(px, py)), jni::ToNativeString(env, bookmarkName), "placemark-red");
- frm()->AddBookmark(jni::ToNativeString(env, categoryName), bm)->SaveToKMLFile();
- }
-
- JNIEXPORT void JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nLoadBookmarks(
- JNIEnv * env, jobject thiz)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nLoadBookmarks(JNIEnv * env, jobject thiz)
{
frm()->LoadBookmarks();
}
-
JNIEXPORT jint JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_getCategoriesCount(
- JNIEnv * env, jobject thiz)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_getCategoriesCount(JNIEnv * env, jobject thiz)
{
return frm()->GetBmCategoriesCount();
}
- //TODO rename
JNIEXPORT jboolean JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetCategoryByName(
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nIsCategoryExist(
JNIEnv * env, jobject thiz, jstring name)
- {
- return frm()->IsCategoryExist(jni::ToNativeString(env, name));
- }
+ {
+ return frm()->IsCategoryExist(jni::ToNativeString(env, name));
+ }
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nDeleteCategory(
@@ -79,7 +70,8 @@ extern "C"
}
JNIEXPORT void JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nDeleteBookmark(JNIEnv * env, jobject thiz, jint cat, jint bmk)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nDeleteBookmark(
+ JNIEnv * env, jobject thiz, jint cat, jint bmk)
{
BookmarkCategory * pCat = frm()->GetBmCategory(cat);
if (pCat)
@@ -90,7 +82,8 @@ extern "C"
}
JNIEXPORT jobject JNICALL
- Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetBookmark(JNIEnv * env, jobject thiz, jdouble px, jdouble py)
+ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nGetBookmark(
+ JNIEnv * env, jobject thiz, jdouble px, jdouble py)
{
BookmarkAndCategory bac = frm()->GetBookmark(m2::PointD(px, py));
diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java
index 1bf6a8b52a..efebe92dbb 100644
--- a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java
+++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java
@@ -35,8 +35,8 @@ public class BookmarkCategoriesActivity extends AbstractBookmarkCategoryActivity
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
- startActivity(new Intent(BookmarkCategoriesActivity.this, BookmarkListActivity.class).putExtra(BookmarkActivity.PIN_SET,
- position));
+ startActivity(new Intent(BookmarkCategoriesActivity.this, BookmarkListActivity.class)
+ .putExtra(BookmarkActivity.PIN_SET, position));
}
});
registerForContextMenu(getListView());
diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkListActivity.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkListActivity.java
index b5a17f7c2e..ab1073da92 100644
--- a/android/src/com/mapswithme/maps/bookmarks/BookmarkListActivity.java
+++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkListActivity.java
@@ -90,8 +90,9 @@ public class BookmarkListActivity extends AbstractBookmarkListActivity
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
- mEditedSet.setName(s.toString());
- setTitle(s.toString());
+ final String name = s.toString();
+ mManager.setCategoryName(mEditedSet, name);
+ setTitle(name);
}
@Override
@@ -138,8 +139,8 @@ public class BookmarkListActivity extends AbstractBookmarkListActivity
private void startPinActivity(int cat, int bmk)
{
- startActivity(new Intent(this, BookmarkActivity.class).
- putExtra(BookmarkActivity.PIN, new ParcelablePoint(cat, bmk)));
+ startActivity(new Intent(this, BookmarkActivity.class)
+ .putExtra(BookmarkActivity.PIN, new ParcelablePoint(cat, bmk)));
}
@Override
diff --git a/android/src/com/mapswithme/maps/bookmarks/ChooseBookmarkCategoryActivity.java b/android/src/com/mapswithme/maps/bookmarks/ChooseBookmarkCategoryActivity.java
index 35d3c7804e..a88b6f0875 100644
--- a/android/src/com/mapswithme/maps/bookmarks/ChooseBookmarkCategoryActivity.java
+++ b/android/src/com/mapswithme/maps/bookmarks/ChooseBookmarkCategoryActivity.java
@@ -159,12 +159,15 @@ public class ChooseBookmarkCategoryActivity extends AbstractBookmarkCategoryActi
private void createNewCategory(String name)
{
- Point cab = ((ParcelablePoint)getIntent().getParcelableExtra(BookmarkActivity.PIN)).getPoint();
- mManager.createCategory(mManager.getBookmark(cab.x, cab.y), name);
- getIntent().putExtra(BookmarkActivity.PIN_SET, mManager.getCategoriesCount()-1).
- putExtra(BookmarkActivity.PIN, new ParcelablePoint(mManager.getCategoriesCount()-1, 0));
+ final Point cab = ((ParcelablePoint)getIntent().getParcelableExtra(BookmarkActivity.PIN)).getPoint();
+ final int index = mManager.createCategory(mManager.getBookmark(cab.x, cab.y), name);
+
+ getIntent().putExtra(BookmarkActivity.PIN_SET, index)
+ .putExtra(BookmarkActivity.PIN, new ParcelablePoint(index, 0));
+
switchToAddButton();
- getAdapter().chooseItem(mManager.getCategoriesCount()-1);
+
+ getAdapter().chooseItem(index);
}
private void switchToAddButton()
diff --git a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java
index 951596be19..43d45554cc 100644
--- a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java
+++ b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java
@@ -4,6 +4,8 @@ import android.content.Context;
import android.graphics.Point;
import android.util.Log;
+import com.mapswithme.maps.R;
+
public class Bookmark
{
private Icon mIcon;
@@ -13,9 +15,11 @@ public class Bookmark
private int mBookmark;
private double mMercatorX = Double.NaN;
private double mMercatorY = Double.NaN;
- private String mPreviewString = "";
- private final boolean mIsPreviewBookmark;
+ //private String mPreviewString = "";
+ //private final boolean mIsPreviewBookmark;
+
+ /*
// For bookmark preview
Bookmark(Context context, ParcelablePointD pos, String name)
{
@@ -25,10 +29,11 @@ public class Bookmark
mPreviewString = name;
getXY(mPosition);
}
+ */
Bookmark(Context context, ParcelablePointD position, int nextCat, int b)
{
- mIsPreviewBookmark = false;
+ //mIsPreviewBookmark = false;
mContext = context.getApplicationContext();
mPosition = position;
getXY(position);
@@ -45,7 +50,7 @@ public class Bookmark
Bookmark(Context context, int c, int b)
{
- mIsPreviewBookmark = false;
+ //mIsPreviewBookmark = false;
mContext = context.getApplicationContext();
mCategoryId = c;
mBookmark = b;
@@ -129,14 +134,15 @@ public class Bookmark
return mIcon;
}
- public String getName(){
+ public String getName()
+ {
if (mCategoryId > -1 && BookmarkManager.getBookmarkManager(mContext).getCategoryById(mCategoryId).getSize() > mBookmark)
{
return nGetName(mCategoryId, mBookmark);
}
else
{
- return mPreviewString;
+ return "";
}
}
@@ -148,9 +154,8 @@ public class Bookmark
}
else
{
- //TODO change string resources
- mCategoryId++;
- return "My Places";
+ mCategoryId = 0;
+ return mContext.getString(R.string.my_places);
}
}
@@ -173,6 +178,8 @@ public class Bookmark
public void setCategory(String category, int catId)
{
changeBookmark(category, getName(), mIcon.getType());
+
+ /// @todo This is not correct, but acceptable in current usage (object is not using later).
mCategoryId = catId;
mBookmark = BookmarkManager.getBookmarkManager(mContext).getCategoryById(mCategoryId).getSize() - 1;
}
@@ -194,24 +201,18 @@ public class Bookmark
public String getBookmarkDescription()
{
- if (!mIsPreviewBookmark)
- {
- return nGetBookmarkDescription(mCategoryId, mBookmark);
- }
- else
- {
- return mPreviewString;
- }
+ //if (!mIsPreviewBookmark)
+ //{
+ return nGetBookmarkDescription(mCategoryId, mBookmark);
+ //}
+ //else
+ //{
+ // return mPreviewString;
+ //}
}
public void setDescription(String n)
{
nSetBookmarkDescription(mCategoryId, mBookmark, n);
}
-
- //TODO stub
- public boolean isPreviewBookmark()
- {
- return mIsPreviewBookmark;
- }
}
diff --git a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java
index e2ebe55dc6..8fcb647c0f 100644
--- a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java
+++ b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java
@@ -5,10 +5,7 @@ import java.util.List;
import android.content.Context;
import android.graphics.Point;
-import android.text.TextUtils;
-import com.mapswithme.maps.MWMActivity;
-import com.mapswithme.maps.R;
import com.mapswithme.util.Utils;
public class BookmarkManager
@@ -114,36 +111,40 @@ public class BookmarkManager
public Bookmark getBookmark(int cat, int bmk)
{
-
return new Bookmark(mContext, cat, bmk);
}
- public BookmarkCategory createCategory(Bookmark bookmark, String newName)
+ private String getUniqueName(String newName)
{
- String pattern;
- String name = pattern = newName;
+ String name = newName;
+
+ /// @todo Probably adding "-copy" suffix is better here (Mac OS style).
int i = 0;
- while (getCategoryByName(name))
- {
- name = pattern + " " + (++i);
- }
- bookmark.setCategory(name, getCategoriesCount());
- BookmarkCategory cat = new BookmarkCategory(mContext, getCategoriesCount()-1);
- return cat;
+ while (nIsCategoryExist(name))
+ name = newName + " " + (++i);
+
+ return name;
+ }
+
+ public int createCategory(Bookmark bookmark, String newName)
+ {
+ bookmark.setCategory(getUniqueName(newName), getCategoriesCount());
+ return getCategoriesCount() - 1;
}
- //TODO
- public boolean getCategoryByName(String name)
+ public void setCategoryName(BookmarkCategory cat, String newName)
{
- return nGetCategoryByName(name);
+ cat.setName(getUniqueName(newName));
}
- private native boolean nGetCategoryByName(String name);
+ private native boolean nIsCategoryExist(String name);
+ /*
public Bookmark previewBookmark(AddressInfo info)
{
return new Bookmark(mContext, info.getPosition(), info.getBookmarkName(mContext));
}
+ */
private native void nShowBookmark(int c, int b);