Skip to content

Commit 0f699fa

Browse files
author
davidgraeff
committed
Remove About, Add Feedback, Add Version Number to Drawer
* Device test before saving as configured device * Reordering of outlets * German help text improved Still missing: * Save scenes and configured devices as json files * Renamed outlets are not persistent (json files necessary) * NFC (json files necessary) * Widgets do not work
1 parent 10c4319 commit 0f699fa

29 files changed

+720
-614
lines changed

.idea/workspace.xml

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

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
<service
7777
android:label="@string/app_name"
7878
android:icon="@drawable/netpowerctrl"
79-
android:name="oly.netpowerctrl.service.NetpowerctrlService"
79+
android:name="oly.netpowerctrl.anelservice.NetpowerctrlService"
8080
android:permission="android.permission.INTERNET" />
8181

8282
</application>

app/src/main/java/oly/netpowerctrl/service/DeviceQuery.java renamed to app/src/main/java/oly/netpowerctrl/anelservice/DeviceQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.service;
1+
package oly.netpowerctrl.anelservice;
22

33
import android.content.Context;
44
import android.content.SharedPreferences;

app/src/main/java/oly/netpowerctrl/network/UDPSendToDevice.java renamed to app/src/main/java/oly/netpowerctrl/anelservice/DeviceSend.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.network;
1+
package oly.netpowerctrl.anelservice;
22

33
import android.content.Context;
44

@@ -17,14 +17,14 @@
1717
import oly.netpowerctrl.datastructure.OutletCommandGroup;
1818
import oly.netpowerctrl.utils.ShowToast;
1919

20-
public class UDPSendToDevice {
20+
public class DeviceSend {
2121
/**
2222
* This class extracts the destination ip, user access data
2323
* and provides outlet manipulation methods (on/off/toggle).
2424
* The resulting data byte variable can be used to send a
2525
* bulk-change udp packet.
2626
*/
27-
static final class DeviceSwitch {
27+
static final public class DeviceSwitch {
2828
// build bulk change byte, see: www.anel-elektronik.de/forum_neu/viewtopic.php?f=16&t=207
2929
// “Sw” + Steckdosen + User + Passwort
3030
// Steckdosen = Zustand aller Steckdosen binär
@@ -35,7 +35,7 @@ static final class DeviceSwitch {
3535
int port;
3636
String access;
3737

38-
DeviceSwitch(DeviceInfo di) {
38+
public DeviceSwitch(DeviceInfo di) {
3939
this.data = 0;
4040
this.port = di.SendPort;
4141
try {

app/src/main/java/oly/netpowerctrl/service/DiscoveryThread.java renamed to app/src/main/java/oly/netpowerctrl/anelservice/DiscoveryThread.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.service;
1+
package oly.netpowerctrl.anelservice;
22

33
import java.io.IOException;
44
import java.net.DatagramPacket;

app/src/main/java/oly/netpowerctrl/service/NetpowerctrlService.java renamed to app/src/main/java/oly/netpowerctrl/anelservice/NetpowerctrlService.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.service;
1+
package oly.netpowerctrl.anelservice;
22

33
import android.app.Service;
44
import android.content.Intent;
@@ -16,7 +16,7 @@ public class NetpowerctrlService extends Service {
1616
private final IBinder mBinder = new LocalBinder();
1717

1818
private ArrayList<DeviceUpdated> observer = new ArrayList<DeviceUpdated>();
19-
private ArrayList<DeviceError> errorobserver = new ArrayList<DeviceError>();
19+
private ArrayList<DeviceError> errorObserver = new ArrayList<DeviceError>();
2020

2121
public void registerDeviceUpdateObserver(DeviceUpdated o) {
2222
observer.add(o);
@@ -27,15 +27,16 @@ public void unregisterDeviceUpdateObserver(DeviceUpdated o) {
2727
}
2828

2929
public void registerDeviceErrorObserver(DeviceError o) {
30-
errorobserver.add(o);
30+
errorObserver.add(o);
3131
}
3232

3333
public void unregisterDeviceErrorObserver(DeviceError o) {
34-
errorobserver.remove(o);
34+
errorObserver.remove(o);
3535
}
3636

3737
public void notifyObservers(final DeviceInfo di) {
38-
if (observer == null)
38+
assert di != null;
39+
if (observer.isEmpty())
3940
return;
4041

4142
Handler h = new Handler(getMainLooper());
@@ -50,14 +51,14 @@ public void run() {
5051
}
5152

5253
public void notifyErrorObservers(final String deviceName, final String errMessage) {
53-
if (observer == null)
54+
if (errorObserver.isEmpty())
5455
return;
5556

5657
Handler h = new Handler(getMainLooper());
5758

5859
h.post(new Runnable() {
5960
public void run() {
60-
for (DeviceError o : errorobserver) {
61+
for (DeviceError o : errorObserver) {
6162
o.onDeviceError(deviceName, errMessage);
6263
}
6364
}
@@ -72,7 +73,7 @@ public NetpowerctrlService getService() {
7273
}
7374

7475
@Override
75-
public IBinder onBind(Intent intent) {
76+
public IBinder onBind(Intent intent) {
7677
startDiscoveryThreads();
7778
return mBinder;
7879
}
@@ -85,24 +86,24 @@ public boolean onUnbind(Intent intent) {
8586

8687
private void startDiscoveryThreads() {
8788
// only start if not yet running
88-
if (discoveryThreads.size() == 0) {
89-
for (int port: DeviceQuery.getAllReceivePorts(this)) {
90-
DiscoveryThread thr = new DiscoveryThread(port, this);
91-
thr.start();
92-
discoveryThreads.add(thr);
93-
}
89+
if (discoveryThreads.size() == 0) {
90+
for (int port : DeviceQuery.getAllReceivePorts(this)) {
91+
DiscoveryThread thr = new DiscoveryThread(port, this);
92+
thr.start();
93+
discoveryThreads.add(thr);
94+
}
9495
// give the threads a chance to start
9596
try {
9697
Thread.sleep(100);
9798
} catch (InterruptedException ignored) {
9899
}
99100
}
100-
}
101-
101+
}
102+
102103
public void restartDiscoveryThreads() {
103104
stopDiscoveryThreads();
104105
startDiscoveryThreads();
105-
}
106+
}
106107

107108
private void stopDiscoveryThreads() {
108109
for (DiscoveryThread thr : discoveryThreads)

app/src/main/java/oly/netpowerctrl/datastructure/DeviceInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import java.util.UUID;
1010

1111
import oly.netpowerctrl.R;
12-
import oly.netpowerctrl.service.DeviceQuery;
12+
import oly.netpowerctrl.anelservice.DeviceQuery;
1313

1414
// this class holds all the info about one device
1515
public class DeviceInfo implements Parcelable {

app/src/main/java/oly/netpowerctrl/datastructure/OutletInfo.java

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
import android.os.Parcelable;
55

66
//this class holds the info about a single outlet
7-
public class OutletInfo implements Parcelable {
7+
public class OutletInfo implements Parcelable, Comparable {
88
public int OutletNumber;
99
public String Description;
1010
public String UserDescription;
1111
public boolean State;
1212
public boolean Disabled;
1313
public DeviceInfo device;
1414
public boolean Hidden;
15+
public int positionRequest;
1516

1617
public OutletInfo() {
1718
OutletNumber = -1;
@@ -20,6 +21,7 @@ public OutletInfo() {
2021
State = false;
2122
Disabled = false;
2223
Hidden = false;
24+
positionRequest = 0;
2325
}
2426

2527
public OutletInfo(OutletInfo other) {
@@ -29,19 +31,25 @@ public OutletInfo(OutletInfo other) {
2931
State = other.State;
3032
Disabled = other.Disabled;
3133
Hidden = other.Hidden;
34+
positionRequest = other.positionRequest;
35+
}
36+
37+
public boolean equals(OutletInfo other) {
38+
return (OutletNumber == other.OutletNumber) && device.equals(device);
3239
}
3340

3441
public int describeContents() {
3542
return 0;
3643
}
3744

38-
public void writeToParcel(Parcel dest, int flags) {
39-
dest.writeInt(OutletNumber);
40-
dest.writeString(Description);
41-
dest.writeString(UserDescription);
42-
dest.writeInt(State ? 1 : 0);
43-
dest.writeInt(Disabled ? 1 : 0);
44-
dest.writeInt(Hidden ? 1 : 0);
45+
public void writeToParcel(Parcel destination, int flags) {
46+
destination.writeInt(OutletNumber);
47+
destination.writeString(Description);
48+
destination.writeString(UserDescription);
49+
destination.writeInt(State ? 1 : 0);
50+
destination.writeInt(Disabled ? 1 : 0);
51+
destination.writeInt(Hidden ? 1 : 0);
52+
destination.writeInt(positionRequest);
4553
}
4654

4755
// this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
@@ -63,6 +71,21 @@ private OutletInfo(Parcel in) {
6371
State = in.readInt() != 0;
6472
Disabled = in.readInt() != 0;
6573
Hidden = in.readInt() != 0;
74+
positionRequest = in.readInt();
75+
}
76+
77+
@Override
78+
public int compareTo(Object o) {
79+
OutletInfo other = (OutletInfo) o;
80+
if (other.equals(this))
81+
return 0;
82+
83+
if (positionRequest == 0 && other.positionRequest == 0) {
84+
return ((UserDescription.isEmpty() ? Description : UserDescription).compareTo(
85+
(other.UserDescription.isEmpty() ? other.Description : other.UserDescription)));
86+
} else {
87+
return positionRequest < other.positionRequest ? -1 : 1;
88+
}
6689
}
6790
}
6891

app/src/main/java/oly/netpowerctrl/listadapter/DeviceListAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
import java.util.List;
1313

1414
import oly.netpowerctrl.R;
15+
import oly.netpowerctrl.anelservice.DeviceUpdated;
1516
import oly.netpowerctrl.datastructure.DeviceInfo;
1617
import oly.netpowerctrl.main.NetpowerctrlApplication;
17-
import oly.netpowerctrl.service.DeviceUpdated;
1818
import oly.netpowerctrl.utils.ListItemMenu;
1919

2020
public class DeviceListAdapter extends BaseAdapter implements OnClickListener, DeviceUpdated {

app/src/main/java/oly/netpowerctrl/listadapter/DrawerAdapter.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,27 @@ public class DrawerAdapter extends BaseAdapter {
2020
private List<Object> mItems = new ArrayList<Object>();
2121
private LayoutInflater inflater;
2222

23+
public void add(String[] mFragmentNames, String[] mFragmentDesc, String[] mFragmentClasses) {
24+
for (int i = 0; i < mFragmentNames.length; ++i) {
25+
if (mFragmentDesc[i].equals("-")) {
26+
addHeader(mFragmentNames[i]);
27+
} else {
28+
addItem(mFragmentNames[i], mFragmentDesc[i], mFragmentClasses[i], mFragmentClasses[i].contains("Dialog"));
29+
}
30+
}
31+
}
32+
33+
public int indexOf(String className) {
34+
for (int i = 0; i < mItems.size(); i++) {
35+
if (getItemViewType(i) == 1) {
36+
DrawerItem item = (DrawerItem) mItems.get(i);
37+
if (item.mClazz.equals(className)) return i;
38+
}
39+
40+
}
41+
return -1;
42+
}
43+
2344
public static class Header {
2445

2546
String mTitle;

0 commit comments

Comments
 (0)