From c71ffda636251518f4a0b4a58e367046e05d995c Mon Sep 17 00:00:00 2001 From: anthony restaino Date: Sun, 7 May 2017 20:58:07 -0400 Subject: [PATCH] Import bookmarks from assets if the database is empty --- .../java/acr/browser/lightning/app/BrowserApp.java | 6 +++++- .../lightning/database/bookmark/BookmarkDatabase.java | 5 +++++ .../lightning/database/bookmark/BookmarkModel.java | 11 +++++++++++ .../bookmark/legacy/LegacyBookmarkManager.java | 2 +- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/acr/browser/lightning/app/BrowserApp.java b/app/src/main/java/acr/browser/lightning/app/BrowserApp.java index 5056f31..cc16cc3 100644 --- a/app/src/main/java/acr/browser/lightning/app/BrowserApp.java +++ b/app/src/main/java/acr/browser/lightning/app/BrowserApp.java @@ -23,6 +23,7 @@ import javax.inject.Inject; import acr.browser.lightning.BuildConfig; import acr.browser.lightning.database.HistoryItem; +import acr.browser.lightning.database.bookmark.BookmarkExporter; import acr.browser.lightning.database.bookmark.legacy.LegacyBookmarkManager; import acr.browser.lightning.database.bookmark.BookmarkModel; import acr.browser.lightning.preference.PreferenceManager; @@ -88,7 +89,10 @@ public class BrowserApp extends Application { if (!oldBookmarks.isEmpty()) { mBookmarkModel.addBookmarkList(oldBookmarks).subscribeOn(Schedulers.io()).subscribe(); } else { - // TODO: 5/7/17 Import bookmarks from assets if not empty + if (mBookmarkModel.count() == 0) { + List assetsBookmarks = BookmarkExporter.importBookmarksFromAssets(BrowserApp.this); + mBookmarkModel.addBookmarkList(assetsBookmarks).subscribeOn(Schedulers.io()).subscribe(); + } } } }); diff --git a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java index cfe7174..67e5eae 100644 --- a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java +++ b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java @@ -374,4 +374,9 @@ public class BookmarkDatabase extends SQLiteOpenHelper implements BookmarkModel }); } + @Override + public long count() { + return DatabaseUtils.queryNumEntries(lazyDatabase(), TABLE_BOOKMARK); + } + } diff --git a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java index d4cb905..0326f21 100644 --- a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java +++ b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java @@ -2,6 +2,7 @@ package acr.browser.lightning.database.bookmark; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.WorkerThread; import com.anthonycr.bonsai.Completable; import com.anthonycr.bonsai.Single; @@ -151,4 +152,14 @@ public interface BookmarkModel { */ @NonNull Single> getFolderNames(); + + /** + * A synchronous call to the model + * that returns the number of bookmarks. + * Should be called from a background thread. + * + * @return the number of bookmarks in the database. + */ + @WorkerThread + long count(); } diff --git a/app/src/main/java/acr/browser/lightning/database/bookmark/legacy/LegacyBookmarkManager.java b/app/src/main/java/acr/browser/lightning/database/bookmark/legacy/LegacyBookmarkManager.java index 75280e8..50de3e6 100644 --- a/app/src/main/java/acr/browser/lightning/database/bookmark/legacy/LegacyBookmarkManager.java +++ b/app/src/main/java/acr/browser/lightning/database/bookmark/legacy/LegacyBookmarkManager.java @@ -27,7 +27,7 @@ import acr.browser.lightning.utils.Utils; @Deprecated public class LegacyBookmarkManager { - private static final String TAG = "BookmarkManager"; + private static final String TAG = "LegacyBookmarkManager"; private static final String TITLE = "title"; private static final String URL = "url";