Search in sources :

Example 11 with LineDefinition

use of org.apmem.tools.layouts.logic.LineDefinition in project android-flowlayout by ApmeM.

the class LineDefinitionTests method CanFit_LengthLessThenRemainingIsOk.

@Test
public void CanFit_LengthLessThenRemainingIsOk() {
    ViewDefinition view1 = CreateView(12, 34);
    ViewDefinition view2 = CreateView(56, 78);
    ConfigDefinition config = new ConfigDefinition();
    config.setMaxWidth(100);
    LineDefinition def = new LineDefinition(config);
    def.addView(view1);
    def.addView(view2);
    boolean canFit = def.canFit(view1);
    Assert.assertTrue(canFit);
}
Also used : ViewDefinition(org.apmem.tools.layouts.logic.ViewDefinition) LineDefinition(org.apmem.tools.layouts.logic.LineDefinition) ConfigDefinition(org.apmem.tools.layouts.logic.ConfigDefinition) Test(org.junit.Test)

Example 12 with LineDefinition

use of org.apmem.tools.layouts.logic.LineDefinition in project android-flowlayout by ApmeM.

the class LineDefinitionTests method AddView_TakesLayoutMarginsIntoAccount.

@Test
public void AddView_TakesLayoutMarginsIntoAccount() {
    ViewDefinition view1 = CreateView(12, 34);
    ViewDefinition view2 = CreateView(56, 78);
    view1.setMargins(1, 1, 1, 1);
    view2.setMargins(1, 1, 1, 1);
    ConfigDefinition config = new ConfigDefinition();
    config.setMaxWidth(100);
    LineDefinition def = new LineDefinition(config);
    def.addView(view1);
    def.addView(view2);
    Assert.assertEquals(72, def.getLineLength());
    Assert.assertEquals(80, def.getLineThickness());
}
Also used : ViewDefinition(org.apmem.tools.layouts.logic.ViewDefinition) LineDefinition(org.apmem.tools.layouts.logic.LineDefinition) ConfigDefinition(org.apmem.tools.layouts.logic.ConfigDefinition) Test(org.junit.Test)

Example 13 with LineDefinition

use of org.apmem.tools.layouts.logic.LineDefinition in project android-flowlayout by ApmeM.

the class CommonLogicTests method GravityApplyUseAllAvailableSpaceVertically.

@Test
public void GravityApplyUseAllAvailableSpaceVertically() {
    ConfigDefinition config = new ConfigDefinition();
    config.setMaxWidth(30);
    config.setMaxHeight(20);
    config.setGravity(Gravity.FILL);
    ArrayList<LineDefinition> lines = new ArrayList<>();
    ArrayList<ViewDefinition> views = new ArrayList<>();
    for (int i = 0; i < 4; i++) {
        ViewDefinition view = new ViewDefinition(config, null);
        view.setWidth(10);
        view.setHeight(10);
        views.add(view);
    }
    CommonLogic.fillLines(views, lines, config);
    CommonLogic.calculateLinesAndChildPosition(lines);
    CommonLogic.applyGravityToLines(lines, 30, 20, config);
    Assert.assertEquals(2, lines.size());
    Assert.assertEquals(10, lines.get(0).getViews().get(0).getHeight());
    Assert.assertEquals(10, lines.get(1).getViews().get(0).getHeight());
}
Also used : LineDefinition(org.apmem.tools.layouts.logic.LineDefinition) ViewDefinition(org.apmem.tools.layouts.logic.ViewDefinition) ConfigDefinition(org.apmem.tools.layouts.logic.ConfigDefinition) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 14 with LineDefinition

use of org.apmem.tools.layouts.logic.LineDefinition in project android-flowlayout by ApmeM.

the class CommonLogicTests method MaxLinesNotSetAllLinesAddedWhenNotSet.

@Test
public void MaxLinesNotSetAllLinesAddedWhenNotSet() {
    ConfigDefinition config = new ConfigDefinition();
    config.setMaxWidth(20);
    ArrayList<LineDefinition> lines = new ArrayList<>();
    ArrayList<ViewDefinition> views = new ArrayList<>();
    for (int i = 0; i < 9; i++) {
        ViewDefinition view = new ViewDefinition(config, null);
        view.setWidth(10);
        view.setHeight(10);
        views.add(view);
    }
    CommonLogic.fillLines(views, lines, config);
    Assert.assertEquals(5, lines.size());
    Assert.assertEquals(2, lines.get(0).getViews().size());
    Assert.assertEquals(2, lines.get(1).getViews().size());
    Assert.assertEquals(2, lines.get(2).getViews().size());
    Assert.assertEquals(2, lines.get(3).getViews().size());
    Assert.assertEquals(1, lines.get(4).getViews().size());
}
Also used : LineDefinition(org.apmem.tools.layouts.logic.LineDefinition) ViewDefinition(org.apmem.tools.layouts.logic.ViewDefinition) ConfigDefinition(org.apmem.tools.layouts.logic.ConfigDefinition) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 15 with LineDefinition

use of org.apmem.tools.layouts.logic.LineDefinition in project android-flowlayout by ApmeM.

the class CommonLogicTests method GravityApplyUseAllAvailableSpaceVerticallyWithLastPixel.

@Test
public void GravityApplyUseAllAvailableSpaceVerticallyWithLastPixel() {
    ConfigDefinition config = new ConfigDefinition();
    config.setMaxWidth(30);
    config.setMaxHeight(21);
    config.setGravity(Gravity.FILL);
    ArrayList<LineDefinition> lines = new ArrayList<>();
    ArrayList<ViewDefinition> views = new ArrayList<>();
    for (int i = 0; i < 4; i++) {
        ViewDefinition view = new ViewDefinition(config, null);
        view.setWidth(10);
        view.setHeight(10);
        views.add(view);
    }
    CommonLogic.fillLines(views, lines, config);
    CommonLogic.calculateLinesAndChildPosition(lines);
    CommonLogic.applyGravityToLines(lines, 30, 21, config);
    Assert.assertEquals(2, lines.size());
    Assert.assertEquals(10, lines.get(0).getViews().get(0).getHeight());
    Assert.assertEquals(11, lines.get(1).getViews().get(0).getHeight());
}
Also used : LineDefinition(org.apmem.tools.layouts.logic.LineDefinition) ViewDefinition(org.apmem.tools.layouts.logic.ViewDefinition) ConfigDefinition(org.apmem.tools.layouts.logic.ConfigDefinition) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

LineDefinition (org.apmem.tools.layouts.logic.LineDefinition)16 ViewDefinition (org.apmem.tools.layouts.logic.ViewDefinition)16 ConfigDefinition (org.apmem.tools.layouts.logic.ConfigDefinition)13 Test (org.junit.Test)13 ArrayList (java.util.ArrayList)6 View (android.view.View)3 Paint (android.graphics.Paint)2 RecyclerView (android.support.v7.widget.RecyclerView)1