From 7eff697eb3bec972a0a16c4a189c88b08b02a518 Mon Sep 17 00:00:00 2001 From: Tarun Nainani Date: Sat, 29 Aug 2015 10:34:40 +0200 Subject: Do not allow duplicate Bookmark folder Change-Id: I42f086128fb62805b08c581d09e53fd974d23f02 --- src/com/android/browser/AddBookmarkFolder.java | 39 +++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'src/com') diff --git a/src/com/android/browser/AddBookmarkFolder.java b/src/com/android/browser/AddBookmarkFolder.java index faff0274..a396ee83 100644 --- a/src/com/android/browser/AddBookmarkFolder.java +++ b/src/com/android/browser/AddBookmarkFolder.java @@ -350,7 +350,10 @@ public class AddBookmarkFolder extends Activity implements View.OnClickListener, } 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 @@ public class AddBookmarkFolder extends Activity implements View.OnClickListener, title = cursor.getString(0); } } + } catch (Exception e) { + return title; } finally { if (cursor != null) { cursor.close(); @@ -712,6 +717,36 @@ public class AddBookmarkFolder extends Activity implements View.OnClickListener, 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 @@ public class AddBookmarkFolder extends Activity implements View.OnClickListener, } c.close(); } + } catch (Exception e) { + return info; } finally { if (c != null) { c.close(); -- cgit v1.2.3