Search in sources :

Example 11 with Tag

use of com.quran.labs.androidquran.dao.Tag in project quran_android by quran.

the class TagBookmarkPresenterTest method setupTest.

@Before
public void setupTest() {
    MockitoAnnotations.initMocks(TagBookmarkPresenterTest.this);
    List<Tag> tags = new ArrayList<>();
    tags.add(new Tag(1, "Test"));
    when(bookmarkModel.tagsObservable()).thenReturn(Observable.empty());
    when(bookmarkModel.getTagsObservable()).thenReturn(Single.just(tags));
    when(bookmarkModel.getBookmarkTagIds(Matchers.any())).thenReturn(Maybe.empty());
}
Also used : ArrayList(java.util.ArrayList) Tag(com.quran.labs.androidquran.dao.Tag) Before(org.junit.Before)

Example 12 with Tag

use of com.quran.labs.androidquran.dao.Tag in project quran_android by quran.

the class BookmarkModelTest method testUpdateTag.

@Test
public void testUpdateTag() {
    when(bookmarksAdapter.updateTag(anyLong(), anyString())).thenReturn(true);
    Tag tag = new Tag(1, "First Tag");
    TestObserver<Void> testObserver = new TestObserver<>();
    model.updateTag(tag).subscribe(testObserver);
    testObserver.awaitTerminalEvent();
    testObserver.assertNoErrors();
    testObserver.assertComplete();
    verify(bookmarksAdapter, times(1)).updateTag(tag.getId(), tag.getName());
}
Also used : Tag(com.quran.labs.androidquran.dao.Tag) TestObserver(io.reactivex.observers.TestObserver) Test(org.junit.Test)

Example 13 with Tag

use of com.quran.labs.androidquran.dao.Tag in project quran_android by quran.

the class BookmarksDBAdapter method importBookmarks.

public boolean importBookmarks(BookmarkData data) {
    boolean result = true;
    mDb.beginTransaction();
    try {
        mDb.delete(BookmarksTable.TABLE_NAME, null, null);
        mDb.delete(BookmarkTagTable.TABLE_NAME, null, null);
        mDb.delete(TagsTable.TABLE_NAME, null, null);
        ContentValues values = new ContentValues();
        List<Tag> tags = data.getTags();
        int tagSize = tags.size();
        Timber.d("importing %d tags...", tagSize);
        for (int i = 0; i < tagSize; i++) {
            Tag tag = tags.get(i);
            values.clear();
            values.put(TagsTable.NAME, tag.getName());
            values.put(TagsTable.ID, tag.getId());
            mDb.insert(TagsTable.TABLE_NAME, null, values);
        }
        List<Bookmark> bookmarks = data.getBookmarks();
        int bookmarkSize = bookmarks.size();
        Timber.d("importing %d bookmarks...", bookmarkSize);
        for (int i = 0; i < bookmarkSize; i++) {
            Bookmark bookmark = bookmarks.get(i);
            values.clear();
            values.put(BookmarksTable.ID, bookmark.id);
            values.put(BookmarksTable.SURA, bookmark.sura);
            values.put(BookmarksTable.AYAH, bookmark.ayah);
            values.put(BookmarksTable.PAGE, bookmark.page);
            values.put(BookmarksTable.ADDED_DATE, bookmark.timestamp);
            mDb.insert(BookmarksTable.TABLE_NAME, null, values);
            List<Long> tagIds = bookmark.tags;
            for (int t = 0; t < tagIds.size(); t++) {
                values.clear();
                values.put(BookmarkTagTable.BOOKMARK_ID, bookmark.id);
                values.put(BookmarkTagTable.TAG_ID, tagIds.get(t));
                mDb.insert(BookmarkTagTable.TABLE_NAME, null, values);
            }
        }
        Timber.d("import successful!");
        mDb.setTransactionSuccessful();
    } catch (Exception e) {
        Timber.e(e, "Failed to import data");
        result = false;
    } finally {
        mDb.endTransaction();
    }
    return result;
}
Also used : ContentValues(android.content.ContentValues) Bookmark(com.quran.labs.androidquran.dao.Bookmark) Tag(com.quran.labs.androidquran.dao.Tag)

Aggregations

Tag (com.quran.labs.androidquran.dao.Tag)13 SuppressLint (android.annotation.SuppressLint)5 ArrayList (java.util.ArrayList)5 Bookmark (com.quran.labs.androidquran.dao.Bookmark)4 QuranRow (com.quran.labs.androidquran.ui.helpers.QuranRow)3 NonNull (android.support.annotation.NonNull)2 List (java.util.List)2 ContentValues (android.content.ContentValues)1 DialogInterface (android.content.DialogInterface)1 Cursor (android.database.Cursor)1 Bundle (android.os.Bundle)1 FragmentActivity (android.support.v4.app.FragmentActivity)1 AlertDialog (android.support.v7.app.AlertDialog)1 LayoutInflater (android.view.LayoutInflater)1 View (android.view.View)1 EditText (android.widget.EditText)1 LinearLayout (android.widget.LinearLayout)1 ListView (android.widget.ListView)1 TextView (android.widget.TextView)1 RecentPage (com.quran.labs.androidquran.dao.RecentPage)1