Do not allow duplicate Bookmark folder
Change-Id: I42f086128fb62805b08c581d09e53fd974d23f02
diff --git a/src/com/android/browser/AddBookmarkFolder.java b/src/com/android/browser/AddBookmarkFolder.java
index faff027..a396ee8 100644
--- a/src/com/android/browser/AddBookmarkFolder.java
+++ b/src/com/android/browser/AddBookmarkFolder.java
@@ -350,7 +350,10 @@
}
private long addFolderToCurrent(String name) {
- // Add the folder to the database
+ // Add the folder to the database if doesn't already exists
+ if(getIdFromName(name) != -1)
+ return -1;
+
ContentValues values = new ContentValues();
values.put(BrowserContract.Bookmarks.TITLE, name);
values.put(BrowserContract.Bookmarks.IS_FOLDER, 1);
@@ -704,6 +707,8 @@
title = cursor.getString(0);
}
}
+ } catch (Exception e) {
+ return title;
} finally {
if (cursor != null) {
cursor.close();
@@ -712,6 +717,36 @@
return title;
}
+ // get folder id from folder title
+ private long getIdFromName(String title) {
+ String titleIdString = "-1";
+ Cursor cursor = null;
+ try {
+ cursor = getApplicationContext().getContentResolver().query(
+ BrowserContract.Bookmarks.CONTENT_URI,
+ new String[] {
+ BrowserContract.Bookmarks._ID
+ },
+ BrowserContract.Bookmarks.TITLE + " = ? AND "
+ + BrowserContract.Bookmarks.IS_DELETED + " = ? AND "
+ + BrowserContract.Bookmarks.IS_FOLDER + " = ? ", new String[] {
+ title, 0 + "", 1 + ""
+ }, null);
+ if (cursor != null && cursor.getCount() != 0) {
+ while (cursor.moveToNext()) {
+ titleIdString = cursor.getString(0);
+ }
+ }
+ } catch (Exception e) {
+ return Long.parseLong(titleIdString);
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ return Long.parseLong(titleIdString);
+ }
+
private void showRemoveButton() {
findViewById(R.id.remove_divider).setVisibility(View.VISIBLE);
mRemoveLink = findViewById(R.id.remove);
@@ -934,6 +969,8 @@
}
c.close();
}
+ } catch (Exception e) {
+ return info;
} finally {
if (c != null) {
c.close();