+ private int countBookmarkFolderContents(int databaseId) {
+ // Initialize the bookmark counter.
+ int bookmarkCounter = 0;
+
+ // Get the name of the folder.
+ String folderName = bookmarksDatabaseHelper.getFolderName(databaseId);
+
+ // Get the contents of the folder.
+ Cursor folderCursor = bookmarksDatabaseHelper.getBookmarkIds(folderName);
+
+ // Count each of the bookmarks in the folder.
+ for (int i = 0; i < folderCursor.getCount(); i++) {
+ // Move the folder cursor to the current row.
+ folderCursor.moveToPosition(i);
+
+ // Get the database ID of the item.
+ int itemDatabaseId = folderCursor.getInt(folderCursor.getColumnIndex(BookmarksDatabaseHelper._ID));
+
+ // If this is a folder, recursively count the contents first.
+ if (bookmarksDatabaseHelper.isFolder(itemDatabaseId)) {
+ // Add the bookmarks from the folder to the running total.
+ bookmarkCounter = bookmarkCounter + countBookmarkFolderContents(itemDatabaseId);
+ }
+
+ // Add the bookmark to the running total.
+ bookmarkCounter++;
+ }
+
+ // Return the bookmark counter.
+ return bookmarkCounter;
+ }
+