Add changeConnector()
This commit is contained in:
parent
7659f58776
commit
d863e39046
2 changed files with 44 additions and 27 deletions
|
@ -176,33 +176,7 @@ public class AutomationFragment extends SubscriberFragment {
|
||||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
if (position != initialPosition) {
|
if (position != initialPosition) {
|
||||||
// conector type changed
|
// conector type changed
|
||||||
final TriggerConnector.Type newConnectorType = TriggerConnector.Type.values()[position];
|
changeConnector(trigger, connector, TriggerConnector.Type.values()[position]);
|
||||||
|
|
||||||
if (connector.size() > 2) {
|
|
||||||
// split connector
|
|
||||||
int pos = connector.pos(trigger) - 1;
|
|
||||||
|
|
||||||
TriggerConnector newConnector = new TriggerConnector(newConnectorType);
|
|
||||||
{
|
|
||||||
Trigger t = connector.get(pos);
|
|
||||||
newConnector.add(t);
|
|
||||||
connector.remove(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
TriggerConnector subConnector = new TriggerConnector(connector.getConnectorType());
|
|
||||||
int count = connector.size() - pos;
|
|
||||||
for (int i = 0; i < count; ++i) {
|
|
||||||
Trigger t = connector.get(pos);
|
|
||||||
subConnector.add(t);
|
|
||||||
connector.remove(t);
|
|
||||||
}
|
|
||||||
newConnector.add(subConnector);
|
|
||||||
connector.add(newConnector);
|
|
||||||
} else {
|
|
||||||
connector.changeConnectorType(newConnectorType);
|
|
||||||
}
|
|
||||||
|
|
||||||
connector.simplify().rebuildView();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,6 +194,34 @@ public class AutomationFragment extends SubscriberFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void changeConnector(final Trigger trigger, final TriggerConnector connector, final TriggerConnector.Type newConnectorType) {
|
||||||
|
if (connector.size() > 2) {
|
||||||
|
// split connector
|
||||||
|
int pos = connector.pos(trigger) - 1;
|
||||||
|
|
||||||
|
TriggerConnector newConnector = new TriggerConnector(newConnectorType);
|
||||||
|
{
|
||||||
|
Trigger t = connector.get(pos);
|
||||||
|
newConnector.add(t);
|
||||||
|
connector.remove(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
TriggerConnector subConnector = new TriggerConnector(connector.getConnectorType());
|
||||||
|
int count = connector.size() - pos;
|
||||||
|
for (int i = 0; i < count; ++i) {
|
||||||
|
Trigger t = connector.get(pos);
|
||||||
|
subConnector.add(t);
|
||||||
|
connector.remove(t);
|
||||||
|
}
|
||||||
|
newConnector.add(subConnector);
|
||||||
|
connector.add(newConnector);
|
||||||
|
} else {
|
||||||
|
connector.changeConnectorType(newConnectorType);
|
||||||
|
}
|
||||||
|
|
||||||
|
connector.simplify().rebuildView();
|
||||||
|
}
|
||||||
|
|
||||||
public void rebuild() {
|
public void rebuild() {
|
||||||
destroy();
|
destroy();
|
||||||
build();
|
build();
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
package info.nightscout.androidaps.plugins.general.automation;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
|
||||||
|
@RunWith(PowerMockRunner.class)
|
||||||
|
@PrepareForTest({})
|
||||||
|
public class ComposeTriggerTest {
|
||||||
|
@Test
|
||||||
|
public void testTriggerList() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue