Search in sources :

Example 26 with Book

use of com.orgzly.android.Book in project orgzly-android by orgzly.

the class StructureTest method testPasteUnderFolded.

@Test
public void testPasteUnderFolded() throws IOException {
    Book book = shelfTestUtils.setupBook("notebook", "" + "description\n" + "\n" + "* Note 1\n" + "** Note 1.1\n" + "*** Note 1.1.1\n" + "*** Note 1.1.2\n" + "** Note 1.2\n" + "* Note 2\n");
    /* Cut & paste 2 under folded 1.1. */
    shelf.cut(book.getId(), shelf.getNote("Note 2").getId());
    shelf.toggleFoldedState(shelf.getNote("Note 1.1").getId());
    Note n = shelf.getNote("Note 1.1");
    shelf.paste(n.getPosition().getBookId(), n.getId(), Place.UNDER);
    assertEquals("description\n" + "\n" + "* Note 1\n" + "** Note 1.1\n" + "*** Note 1.1.1\n" + "*** Note 1.1.2\n" + "*** Note 2\n" + "** Note 1.2\n", shelf.getBookContent("notebook", BookName.Format.ORG));
    NotePosition n1 = shelf.getNote("Note 1").getPosition();
    NotePosition n11 = shelf.getNote("Note 1.1").getPosition();
    NotePosition n111 = shelf.getNote("Note 1.1.1").getPosition();
    NotePosition n112 = shelf.getNote("Note 1.1.2").getPosition();
    NotePosition n2 = shelf.getNote("Note 2").getPosition();
    NotePosition n12 = shelf.getNote("Note 1.2").getPosition();
    assertEquals(shelf.getNote("Note 1.1").getId(), n2.getParentId());
    assertEquals(1, n1.getLevel());
    assertEquals(2, n11.getLevel());
    assertEquals(3, n111.getLevel());
    assertEquals(3, n112.getLevel());
    assertEquals(3, n2.getLevel());
    assertEquals(2, n12.getLevel());
    assertTrue(n1.getLft() < n11.getLft());
    assertTrue(n11.getLft() < n111.getLft());
    assertTrue(n111.getLft() < n111.getRgt());
    assertTrue(n111.getLft() < n111.getRgt());
    assertTrue(n111.getRgt() < n112.getLft());
    assertTrue(n112.getLft() < n112.getRgt());
    assertTrue(n112.getRgt() < n2.getLft());
    assertTrue(n2.getLft() < n2.getRgt());
    assertTrue(n2.getRgt() < n11.getRgt());
    assertTrue(n11.getRgt() < n12.getLft());
    assertTrue(n12.getLft() < n12.getRgt());
    assertTrue(n12.getRgt() < n1.getRgt());
    assertEquals(5, n1.getDescendantsCount());
    assertEquals(3, n11.getDescendantsCount());
    assertEquals(0, n111.getDescendantsCount());
    assertEquals(0, n112.getDescendantsCount());
    assertEquals(0, n2.getDescendantsCount());
    assertEquals(0, n12.getDescendantsCount());
    assertEquals(0, n1.getFoldedUnderId());
    assertEquals(0, n11.getFoldedUnderId());
    assertEquals(shelf.getNote("Note 1.1").getId(), n111.getFoldedUnderId());
    assertEquals(shelf.getNote("Note 1.1").getId(), n112.getFoldedUnderId());
    assertEquals(shelf.getNote("Note 1.1").getId(), n2.getFoldedUnderId());
    assertEquals(0, n12.getFoldedUnderId());
}
Also used : Book(com.orgzly.android.Book) NotePosition(com.orgzly.android.NotePosition) Note(com.orgzly.android.Note) OrgzlyTest(com.orgzly.android.OrgzlyTest) Test(org.junit.Test)

Example 27 with Book

use of com.orgzly.android.Book in project orgzly-android by orgzly.

the class StructureTest method testCyclingFreshlyImportedNotebook.

@Test
public void testCyclingFreshlyImportedNotebook() {
    Book book = shelfTestUtils.setupBook("booky", "Notebook\n" + "* Note 1\n" + "** Note 2\n" + "*** Note 3\n" + "** Note 4\n" + "* Note 5");
    /* Fold all. */
    shelf.cycleVisibility(book);
    assertTrue(shelf.getNote("Note 1").getPosition().isFolded());
    assertTrue(shelf.getNote("Note 2").getPosition().isFolded());
    assertTrue(shelf.getNote("Note 3").getPosition().isFolded());
    assertTrue(shelf.getNote("Note 4").getPosition().isFolded());
    assertTrue(shelf.getNote("Note 5").getPosition().isFolded());
    /* Unfold all. */
    shelf.cycleVisibility(book);
    assertFalse(shelf.getNote("Note 1").getPosition().isFolded());
    assertFalse(shelf.getNote("Note 2").getPosition().isFolded());
    assertFalse(shelf.getNote("Note 3").getPosition().isFolded());
    assertFalse(shelf.getNote("Note 4").getPosition().isFolded());
    assertFalse(shelf.getNote("Note 5").getPosition().isFolded());
}
Also used : Book(com.orgzly.android.Book) OrgzlyTest(com.orgzly.android.OrgzlyTest) Test(org.junit.Test)

Example 28 with Book

use of com.orgzly.android.Book in project orgzly-android by orgzly.

the class StructureTest method testCutAndPaste.

/* Make sure root node's rgt is larger then notes'. */
@Test
public void testCutAndPaste() throws IOException {
    Book book = shelfTestUtils.setupBook("notebook", "* Note 1\n* Note 2");
    shelf.cut(book.getId(), shelf.getNote("Note 1").getId());
    shelf.paste(book.getId(), shelf.getNote("Note 2").getId(), Place.BELOW);
    // Note with ID 3 is root note
    assertTrue(shelf.getNote(3).getPosition().getRgt() > shelf.getNote("Note 1").getPosition().getRgt());
    assertTrue(shelf.getNote(3).getPosition().getRgt() > shelf.getNote("Note 2").getPosition().getRgt());
}
Also used : Book(com.orgzly.android.Book) OrgzlyTest(com.orgzly.android.OrgzlyTest) Test(org.junit.Test)

Example 29 with Book

use of com.orgzly.android.Book in project orgzly-android by orgzly.

the class StructureTest method testNewNoteUnder.

@Test
public void testNewNoteUnder() throws IOException {
    Book book = shelfTestUtils.setupBook("notebook", "description\n" + "* Note 1\n" + "** Note 1.1\n" + "*** Note 1.1.1\n" + "** Note 1.2\n");
    NotePosition note1, note11, note111, note12, note112;
    note1 = shelf.getNote("Note 1").getPosition();
    note11 = shelf.getNote("Note 1.1").getPosition();
    note111 = shelf.getNote("Note 1.1.1").getPosition();
    note12 = shelf.getNote("Note 1.2").getPosition();
    assertTrue(note1.getLft() < note11.getLft());
    assertTrue(note11.getLft() < note111.getLft());
    assertTrue(note111.getLft() < note111.getRgt());
    assertTrue(note111.getRgt() < note11.getRgt());
    assertTrue(note11.getRgt() < note12.getLft());
    assertTrue(note12.getLft() < note12.getRgt());
    assertTrue(note12.getRgt() < note1.getRgt());
    assertEquals(3, note1.getDescendantsCount());
    assertEquals(1, note11.getDescendantsCount());
    assertEquals(0, note111.getDescendantsCount());
    assertEquals(0, note12.getDescendantsCount());
    /* Create new note under Note 1.1. */
    Note n = new Note();
    n.getPosition().setBookId(book.getId());
    n.getHead().setTitle("Note 1.1.2");
    NotePlace target = new NotePlace(book.getId(), shelf.getNote("Note 1.1").getId(), Place.UNDER);
    shelf.createNote(n, target);
    note1 = shelf.getNote("Note 1").getPosition();
    note11 = shelf.getNote("Note 1.1").getPosition();
    note111 = shelf.getNote("Note 1.1.1").getPosition();
    note112 = shelf.getNote("Note 1.1.2").getPosition();
    note12 = shelf.getNote("Note 1.2").getPosition();
    assertTrue(note1.getLft() < note11.getLft());
    assertTrue(note11.getLft() < note111.getLft());
    assertTrue(note111.getLft() < note111.getRgt());
    assertTrue(note111.getRgt() < note112.getLft());
    assertTrue(note112.getLft() < note112.getRgt());
    assertTrue(note112.getRgt() < note11.getRgt());
    assertTrue(note11.getRgt() < note12.getLft());
    assertTrue(note12.getLft() < note12.getRgt());
    assertTrue(note12.getRgt() < note1.getRgt());
    assertEquals(4, note1.getDescendantsCount());
    assertEquals(2, note11.getDescendantsCount());
    assertEquals(0, note111.getDescendantsCount());
    assertEquals(0, note112.getDescendantsCount());
    assertEquals(0, note12.getDescendantsCount());
}
Also used : Book(com.orgzly.android.Book) NotePosition(com.orgzly.android.NotePosition) Note(com.orgzly.android.Note) NotePlace(com.orgzly.android.ui.NotePlace) OrgzlyTest(com.orgzly.android.OrgzlyTest) Test(org.junit.Test)

Example 30 with Book

use of com.orgzly.android.Book in project orgzly-android by orgzly.

the class BookChooserActivity method onBookClicked.

@Override
public void onBookClicked(long bookId) {
    if (action != null && action.equals(Intent.ACTION_CREATE_SHORTCUT)) {
        // Get Book by its ID
        Shelf shelf = new Shelf(this);
        Book book = shelf.getBook(bookId);
        if (book == null) {
            Toast.makeText(this, R.string.book_does_not_exist_anymore, Toast.LENGTH_SHORT).show();
            setResult(RESULT_CANCELED);
            finish();
            return;
        }
        String id = "notebook-" + bookId;
        String name = book.getName();
        String title = BookUtils.getFragmentTitleForBook(book);
        Intent launchIntent = createLaunchIntent(book);
        IconCompat icon = createIcon();
        ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(this, id).setShortLabel(name).setLongLabel(title).setIcon(icon).setIntent(launchIntent).build();
        setResult(RESULT_OK, ShortcutManagerCompat.createShortcutResultIntent(this, shortcut));
        finish();
    }
}
Also used : Book(com.orgzly.android.Book) IconCompat(android.support.v4.graphics.drawable.IconCompat) Shelf(com.orgzly.android.Shelf) Intent(android.content.Intent) AppIntent(com.orgzly.android.AppIntent) ShortcutInfoCompat(android.support.v4.content.pm.ShortcutInfoCompat)

Aggregations

Book (com.orgzly.android.Book)60 OrgzlyTest (com.orgzly.android.OrgzlyTest)47 Test (org.junit.Test)47 Note (com.orgzly.android.Note)21 NotePosition (com.orgzly.android.NotePosition)11 IOException (java.io.IOException)8 Shelf (com.orgzly.android.Shelf)6 Uri (android.net.Uri)5 Context (android.content.Context)4 Intent (android.content.Intent)4 TypedArray (android.content.res.TypedArray)4 NavigationView (android.support.design.widget.NavigationView)4 SearchView (android.support.v7.widget.SearchView)4 MenuItem (android.view.MenuItem)4 View (android.view.View)4 TextView (android.widget.TextView)4 Query (com.orgzly.android.query.Query)4 File (java.io.File)4 Activity (android.app.Activity)3 AlertDialog (android.app.AlertDialog)3