Skip to content

Commit 44b1fe2

Browse files
author
David Gräff
committed
Version 2.8:
* Absturz bei Szenenerstellung behoben * Was ist neu - Dialog * Namensänderungen finden jetzt direkt auf dem Gerät statt * Mehr Kontrolle über den Energiesparmodus * Energiesparmodus überarbeitet * Eigene Icons für Steckdosen/IOs. Widget Icons müssen leider neu gesetzt werden. * Listen/Rasteransicht für Szenen, Gruppen und Steckdosen
1 parent 8d07f14 commit 44b1fe2

File tree

78 files changed

+2264
-1516
lines changed

Some content is hidden

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

78 files changed

+2264
-1516
lines changed

.idea/workspace.xml

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

app/app.iml

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
<component name="FacetManager">
44
<facet type="android" name="Android">
55
<configuration>
6-
<option name="SELECTED_BUILD_VARIANT" value="debug" />
7-
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
8-
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
9-
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
10-
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
6+
<option name="SELECTED_BUILD_VARIANT" value="release" />
7+
<option name="ASSEMBLE_TASK_NAME" value="assembleRelease" />
8+
<option name="COMPILE_JAVA_TASK_NAME" value="compileReleaseJava" />
9+
<option name="SOURCE_GEN_TASK_NAME" value="generateReleaseSources" />
1110
<option name="ALLOW_USER_CONFIGURATION" value="false" />
1211
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
1312
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
@@ -22,26 +21,21 @@
2221
</facet>
2322
</component>
2423
<component name="NewModuleRootManager" inherit-compiler-output="false">
25-
<output url="file://$MODULE_DIR$/build/classes/debug" />
24+
<output url="file://$MODULE_DIR$/build/classes/release" />
2625
<exclude-output />
2726
<content url="file://$MODULE_DIR$">
28-
<sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" generated="true" />
29-
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" generated="true" />
30-
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" generated="true" />
31-
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" generated="true" />
32-
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" type="java-resource" />
33-
<sourceFolder url="file://$MODULE_DIR$/build/source/r/test/debug" isTestSource="true" generated="true" />
34-
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test/debug" isTestSource="true" generated="true" />
35-
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test/debug" isTestSource="true" generated="true" />
36-
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/test/debug" isTestSource="true" generated="true" />
37-
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/test/debug" type="java-test-resource" />
38-
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
39-
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
40-
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
41-
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
42-
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
43-
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
44-
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
27+
<sourceFolder url="file://$MODULE_DIR$/build/source/r/release" isTestSource="false" generated="true" />
28+
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/release" isTestSource="false" generated="true" />
29+
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/release" isTestSource="false" generated="true" />
30+
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/release" isTestSource="false" generated="true" />
31+
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/release" type="java-resource" />
32+
<sourceFolder url="file://$MODULE_DIR$/src/release/res" type="java-resource" />
33+
<sourceFolder url="file://$MODULE_DIR$/src/release/resources" type="java-resource" />
34+
<sourceFolder url="file://$MODULE_DIR$/src/release/aidl" isTestSource="false" />
35+
<sourceFolder url="file://$MODULE_DIR$/src/release/assets" isTestSource="false" />
36+
<sourceFolder url="file://$MODULE_DIR$/src/release/java" isTestSource="false" />
37+
<sourceFolder url="file://$MODULE_DIR$/src/release/jni" isTestSource="false" />
38+
<sourceFolder url="file://$MODULE_DIR$/src/release/rs" isTestSource="false" />
4539
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
4640
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
4741
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
@@ -71,6 +65,7 @@
7165
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
7266
<orderEntry type="sourceFolder" forTests="false" />
7367
<orderEntry type="library" exported="" name="support-v4-19.1.0" level="project" />
68+
<orderEntry type="library" exported="" name="ckchangelog-1.2.0" level="project" />
7469
<orderEntry type="library" exported="" name="acra-4.5.0" level="project" />
7570
<orderEntry type="library" exported="" name="support-v13-19.1.0" level="project" />
7671
</component>

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ dependencies {
2323
debugCompile 'com.android.support:support-v13:+'
2424
releaseCompile 'ch.acra:acra:4.5.0@jar'
2525
releaseCompile 'com.android.support:support-v13:+'
26+
compile 'de.cketti.library.changelog:ckchangelog:1.2.0'
2627
}

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="oly.netpowerctrl"
4-
android:versionCode="33"
5-
android:versionName="2.7a">
4+
android:versionCode="37"
5+
android:versionName="2.8a">
66

7-
<!-- Api level 14: Android 4.0 15. Dezember 2011 -->
7+
<!-- Api level 14: Android 4.0 15. Dezember 2011 -->
88
<!-- Api level 16: Android 4.1 27. Juni 2012 -->
99
<!--<uses-sdk
1010
android:minSdkVersion="14"

app/src/main/aidl/oly/netpowerctrl/plugins/INetPwrCtrlPlugin.aidl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ interface INetPwrCtrlPlugin {
99
void updateIntValue(int id, int value);
1010
void updateBooleanValue(int id, boolean value);
1111
void executeAction(int id);
12+
void rename(int id, String new_name);
1213
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ public void process(DeviceSend deviceSend) {
7373
// NetpowerctrlApplication.instance.getString(R.string.devices_no_new_on_network),
7474
// Toast.LENGTH_SHORT).show();
7575

76-
// Query all existing devices directly
76+
// Query all existing anel devices directly
7777
ArrayList<DeviceInfo> devices = NetpowerctrlApplication.getDataController().configuredDevices;
7878
for (DeviceInfo di : devices) {
79-
if (di.deviceType == DeviceInfo.DeviceType.AnelDevice)
80-
AnelExecutor.sendQuery(di);
79+
if (di.pluginID.equals(AnelPlugin.PLUGIN_ID))
80+
di.getPluginInterface().requestData(di);
8181
}
8282
}
8383
}

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

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
package oly.netpowerctrl.anel;
22

3+
import android.os.Handler;
4+
35
import java.io.IOException;
46
import java.net.DatagramPacket;
57
import java.net.DatagramSocket;
68

79
import oly.netpowerctrl.R;
10+
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
811
import oly.netpowerctrl.datastructure.DeviceInfo;
912
import oly.netpowerctrl.datastructure.DevicePort;
10-
import oly.netpowerctrl.network.NetpowerctrlService;
1113
import oly.netpowerctrl.preferences.SharedPrefs;
1214
import oly.netpowerctrl.utils.ShowToast;
1315

1416
public class AnelDeviceDiscoveryThread extends Thread {
1517
private int receive_port;
1618
private boolean keep_running;
1719
private DatagramSocket socket;
18-
private NetpowerctrlService service;
20+
private AnelPlugin anelPlugin;
1921

20-
public AnelDeviceDiscoveryThread(int port, NetpowerctrlService service) {
21-
this.service = service;
22+
public AnelDeviceDiscoveryThread(AnelPlugin anelPlugin, int port) {
23+
this.anelPlugin = anelPlugin;
2224
receive_port = port;
2325
socket = null;
2426
}
@@ -39,11 +41,11 @@ public void run() {
3941
socket.close();
4042
} catch (final IOException e) {
4143
if (keep_running) { // no message if we were interrupt()ed
42-
String msg = String.format(service.getResources().getString(R.string.error_listen_thread_exception), receive_port);
44+
String msg = String.format(NetpowerctrlApplication.instance.getResources().getString(R.string.error_listen_thread_exception), receive_port);
4345
msg += e.getLocalizedMessage();
4446
if (receive_port < 1024)
45-
msg += service.getResources().getString(R.string.error_port_lt_1024);
46-
ShowToast.FromOtherThread(service, msg);
47+
msg += NetpowerctrlApplication.instance.getResources().getString(R.string.error_port_lt_1024);
48+
ShowToast.FromOtherThread(NetpowerctrlApplication.instance, msg);
4749
}
4850
break;
4951
}
@@ -59,9 +61,9 @@ public void interrupt() {
5961
super.interrupt();
6062
}
6163

62-
static DeviceInfo createReceivedAnelDevice(String DeviceName, String HostName,
63-
String MacAddress, int receive_port) {
64-
DeviceInfo di = DeviceInfo.createNewDevice(DeviceInfo.DeviceType.AnelDevice);
64+
private DeviceInfo createReceivedAnelDevice(String DeviceName, String HostName,
65+
String MacAddress, int receive_port) {
66+
DeviceInfo di = DeviceInfo.createNewDevice(anelPlugin.getPluginID());
6567
di.DeviceName = DeviceName;
6668
di.HostName = HostName;
6769
di.UniqueDeviceID = MacAddress;
@@ -77,13 +79,21 @@ static DeviceInfo createReceivedAnelDevice(String DeviceName, String HostName,
7779
}
7880

7981
void parsePacket(final String message, int receive_port) {
80-
String msg[] = message.split(":");
82+
final String msg[] = message.split(":");
8183
if (msg.length < 3) {
8284
return;
8385
}
8486

8587
if ((msg.length >= 4) && (msg[3].trim().equals("Err"))) {
86-
service.notifyErrorObservers(msg[1].trim(), msg[2].trim());
88+
new Handler(NetpowerctrlApplication.instance.getMainLooper()).post(new Runnable() {
89+
public void run() {
90+
String errMessage = msg[2].trim();
91+
if (errMessage.trim().equals("NoPass"))
92+
errMessage = NetpowerctrlApplication.instance.getString(R.string.error_nopass);
93+
NetpowerctrlApplication.getDataController().onDeviceErrorByName(msg[1].trim(), errMessage);
94+
}
95+
});
96+
8797
return;
8898
}
8999

@@ -115,7 +125,7 @@ void parsePacket(final String message, int receive_port) {
115125

116126
DevicePort oi = new DevicePort(di, DevicePort.DevicePortType.TypeToggle);
117127
oi.id = (i - 16 + 1) + 10; // 1-based, and for IO we add 10. range: 11..19
118-
oi.setDescriptionByDevice(io_port[0]);
128+
oi.setDescription(io_port[0]);
119129
oi.current_value = io_port[2].equals("1") ? DevicePort.ON : DevicePort.OFF;
120130
di.DevicePorts.add(oi);
121131
}
@@ -136,14 +146,25 @@ else if (msg.length < 14) {
136146
continue;
137147
DevicePort oi = new DevicePort(di, DevicePort.DevicePortType.TypeToggle);
138148
oi.id = i + 1; // 1-based
139-
oi.setDescriptionByDevice(outlet[0]);
149+
oi.setDescription(outlet[0]);
140150
if (outlet.length > 1)
141151
oi.current_value = outlet[1].equals("1") ? DevicePort.ON : DevicePort.OFF;
142152
oi.Disabled = (disabledOutlets & (1 << i)) != 0;
143153

144154
di.DevicePorts.add(oi);
145155
}
146156

147-
service.notifyObservers(di);
157+
new Handler(NetpowerctrlApplication.instance.getMainLooper()).post(new Runnable() {
158+
public void run() {
159+
NetpowerctrlApplication.getDataController().onDeviceUpdated(di);
160+
}
161+
});
162+
}
163+
164+
/**
165+
* @return Return the receive port of this thread
166+
*/
167+
public int getPort() {
168+
return receive_port;
148169
}
149170
}

0 commit comments

Comments
 (0)