Skip to content

Commit 610ce55

Browse files
author
David Gräff
committed
Refactor service. Add multiple connections for one device (WIP).
1 parent 85d6cf0 commit 610ce55

File tree

82 files changed

+2873
-1682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+2873
-1682
lines changed

.idea/workspace.xml

Lines changed: 772 additions & 357 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
defaultConfig {
88
minSdkVersion 14
99
targetSdkVersion 19
10-
versionCode 66
11-
versionName "5.2"
10+
versionCode 67
11+
versionName "5.3"
1212
}
1313

1414
lintOptions {
@@ -39,7 +39,7 @@ dependencies {
3939
//compile fileTree(dir: 'libs', include: ['*.jar'])
4040
compile 'com.google.android.gms:play-services:4.+'
4141

42-
compile 'ch.acra:acra:4.5+'
42+
compile 'ch.acra:acra:4+'
4343
compile 'com.android.support:support-v13:+'
4444
compile 'de.cketti.library.changelog:ckchangelog:1.2+'
4545
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:0.9+'

app/src/main/java/oly/netpowerctrl/alarms/Alarm.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import oly.netpowerctrl.R;
1515
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
16-
import oly.netpowerctrl.devices.DevicePort;
16+
import oly.netpowerctrl.device_ports.DevicePort;
1717

1818
/**
1919
* Created by david on 19.05.14.

app/src/main/java/oly/netpowerctrl/alarms/AlarmEditPreferences.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
2323
import oly.netpowerctrl.application_state.NetpowerctrlService;
2424
import oly.netpowerctrl.application_state.PluginInterface;
25+
import oly.netpowerctrl.device_ports.DevicePort;
2526
import oly.netpowerctrl.device_ports.DevicePortSourceConfigured;
2627
import oly.netpowerctrl.device_ports.DevicePortsListAdapter;
27-
import oly.netpowerctrl.devices.DevicePort;
2828
import oly.netpowerctrl.network.AsyncRunnerResult;
2929
import oly.netpowerctrl.preferences.DatePreference;
3030
import oly.netpowerctrl.preferences.TimePreference;

app/src/main/java/oly/netpowerctrl/alarms/TimerController.java

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
1717
import oly.netpowerctrl.application_state.NetpowerctrlService;
1818
import oly.netpowerctrl.application_state.PluginInterface;
19+
import oly.netpowerctrl.device_ports.DevicePort;
20+
import oly.netpowerctrl.devices.Device;
21+
import oly.netpowerctrl.devices.DeviceCollection;
1922
import oly.netpowerctrl.network.AsyncRunnerResult;
2023
import oly.netpowerctrl.utils.JSONHelper;
2124

@@ -149,9 +152,45 @@ public boolean refresh(NetpowerctrlService service) {
149152

150153
notifyObservers(false, true);
151154

152-
requestActive = service.requestAllAlarms(alarm_uuids, this);
153-
if (!requestActive)
155+
if (service.isNetworkReducedMode() || requestActive) {
154156
notifyObservers(false, false);
157+
return requestActive;
158+
}
159+
160+
requestActive = true;
161+
162+
List<DevicePort> alarm_ports = new ArrayList<>();
163+
164+
DeviceCollection c = NetpowerctrlApplication.getDataController().deviceCollection;
165+
// Put all ports of all devices into the list alarm_ports.
166+
// If a port is referenced by the alarm_uuids hashSet, it will be put in front of the list
167+
// to refresh that port first.
168+
for (Device di : c.devices) {
169+
// Request all alarm_uuids may be called before all plugins responded
170+
PluginInterface i = di.getPluginInterface(service);
171+
if (i == null || !di.isEnabled())
172+
continue;
173+
174+
// Request alarm_uuids for every port
175+
di.lockDevicePorts();
176+
Iterator<DevicePort> it = di.getDevicePortIterator();
177+
while (it.hasNext()) {
178+
final DevicePort port = it.next();
179+
if (port.Disabled)
180+
continue;
181+
182+
if (alarm_uuids.contains(port.uuid))
183+
alarm_ports.add(0, port); // add in front of all alarm_uuids
184+
else
185+
alarm_ports.add(port);
186+
}
187+
di.releaseDevicePorts();
188+
}
189+
190+
for (DevicePort port : alarm_ports) {
191+
PluginInterface i = port.device.getPluginInterface(service);
192+
i.requestAlarms(port, this);
193+
}
155194

156195
return requestActive;
157196
}

app/src/main/java/oly/netpowerctrl/alarms/TimerFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import oly.netpowerctrl.application_state.NetpowerctrlService;
2626
import oly.netpowerctrl.application_state.PluginInterface;
2727
import oly.netpowerctrl.application_state.ServiceReady;
28-
import oly.netpowerctrl.devices.DevicePort;
28+
import oly.netpowerctrl.device_ports.DevicePort;
2929
import oly.netpowerctrl.devices.DevicesFragment;
3030
import oly.netpowerctrl.main.MainActivity;
3131
import oly.netpowerctrl.network.AsyncRunnerResult;

app/src/main/java/oly/netpowerctrl/anel/AnelBroadcastSendJob.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313

1414
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
1515
import oly.netpowerctrl.application_state.NetpowerctrlService;
16-
import oly.netpowerctrl.devices.DeviceInfo;
16+
import oly.netpowerctrl.application_state.PluginInterface;
17+
import oly.netpowerctrl.devices.Device;
18+
import oly.netpowerctrl.devices.DeviceConnection;
1719
import oly.netpowerctrl.network.UDPSending;
1820

1921
/**
@@ -78,10 +80,14 @@ public void process(UDPSending UDPSending) {
7880
NetpowerctrlService service = NetpowerctrlService.getService();
7981
if (service == null)
8082
return;
81-
List<DeviceInfo> devices = NetpowerctrlApplication.getDataController().deviceCollection.devices;
82-
for (DeviceInfo di : devices) {
83-
if (di.pluginID.equals(AnelPlugin.PLUGIN_ID))
84-
di.getPluginInterface(service).requestData(di);
83+
List<Device> devices = NetpowerctrlApplication.getDataController().deviceCollection.devices;
84+
for (Device device : devices) {
85+
if (device.pluginID.equals(AnelPlugin.PLUGIN_ID)) {
86+
PluginInterface i = device.getPluginInterface(service);
87+
for (DeviceConnection ci : device.DeviceConnections) {
88+
i.requestData(ci);
89+
}
90+
}
8591
}
8692
}
8793
}

0 commit comments

Comments
 (0)