зеркало из https://github.com/mozilla/gecko-dev.git
Bug 753534 - Desktop Bookmarks folder is created after migration from XUL to Native. r=lucasr
This commit is contained in:
Родитель
0ff66b2175
Коммит
9de21c0190
|
@ -40,6 +40,7 @@
|
||||||
package org.mozilla.gecko.db;
|
package org.mozilla.gecko.db;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.mozilla.gecko.db.BrowserContract.Bookmarks;
|
import org.mozilla.gecko.db.BrowserContract.Bookmarks;
|
||||||
import org.mozilla.gecko.db.BrowserContract.History;
|
import org.mozilla.gecko.db.BrowserContract.History;
|
||||||
|
@ -76,6 +77,9 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
|
||||||
private final String mProfile;
|
private final String mProfile;
|
||||||
private long mMobileFolderId;
|
private long mMobileFolderId;
|
||||||
|
|
||||||
|
// Map of folder GUIDs to IDs. Used for caching.
|
||||||
|
private HashMap<String, Long> mFolderIdMap;
|
||||||
|
|
||||||
// Use wrapped Boolean so that we can have a null state
|
// Use wrapped Boolean so that we can have a null state
|
||||||
private Boolean mDesktopBookmarksExist;
|
private Boolean mDesktopBookmarksExist;
|
||||||
|
|
||||||
|
@ -100,6 +104,7 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
|
||||||
public LocalBrowserDB(String profile) {
|
public LocalBrowserDB(String profile) {
|
||||||
mProfile = profile;
|
mProfile = profile;
|
||||||
mMobileFolderId = -1;
|
mMobileFolderId = -1;
|
||||||
|
mFolderIdMap = new HashMap<String, Long>();
|
||||||
mDesktopBookmarksExist = null;
|
mDesktopBookmarksExist = null;
|
||||||
|
|
||||||
mBookmarksUriWithProfile = appendProfile(Bookmarks.CONTENT_URI);
|
mBookmarksUriWithProfile = appendProfile(Bookmarks.CONTENT_URI);
|
||||||
|
@ -346,12 +351,16 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
|
||||||
Cursor c = null;
|
Cursor c = null;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
try {
|
try {
|
||||||
|
// Check to see if there are any bookmarks in one of our three
|
||||||
|
// fixed "Desktop Boomarks" folders.
|
||||||
c = cr.query(bookmarksUriWithLimit(1),
|
c = cr.query(bookmarksUriWithLimit(1),
|
||||||
new String[] { Bookmarks._ID },
|
new String[] { Bookmarks._ID },
|
||||||
Bookmarks.PARENT + " != ? AND " +
|
Bookmarks.PARENT + " = ? OR " +
|
||||||
Bookmarks.PARENT + " != ?",
|
Bookmarks.PARENT + " = ? OR " +
|
||||||
new String[] { String.valueOf(getMobileBookmarksFolderId(cr)),
|
Bookmarks.PARENT + " = ?",
|
||||||
String.valueOf(Bookmarks.FIXED_ROOT_ID) },
|
new String[] { String.valueOf(getFolderIdFromGuid(cr, Bookmarks.TOOLBAR_FOLDER_GUID)),
|
||||||
|
String.valueOf(getFolderIdFromGuid(cr, Bookmarks.MENU_FOLDER_GUID)),
|
||||||
|
String.valueOf(getFolderIdFromGuid(cr, Bookmarks.UNFILED_FOLDER_GUID)) },
|
||||||
null);
|
null);
|
||||||
count = c.getCount();
|
count = c.getCount();
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -402,7 +411,10 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
|
||||||
return mMobileFolderId;
|
return mMobileFolderId;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getFolderIdFromGuid(ContentResolver cr, String guid) {
|
private synchronized long getFolderIdFromGuid(ContentResolver cr, String guid) {
|
||||||
|
if (mFolderIdMap.containsKey(guid))
|
||||||
|
return mFolderIdMap.get(guid);
|
||||||
|
|
||||||
long folderId = -1;
|
long folderId = -1;
|
||||||
Cursor c = null;
|
Cursor c = null;
|
||||||
|
|
||||||
|
@ -420,6 +432,7 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
|
||||||
c.close();
|
c.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mFolderIdMap.put(guid, folderId);
|
||||||
return folderId;
|
return folderId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче