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();