Skip to content

Commit 7e59299

Browse files
author
David Gräff
committed
Disable proguard (does not work with acra).
Log for energy save mode. Improve energy save mode.
1 parent a8ee987 commit 7e59299

Some content is hidden

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

56 files changed

+1996
-841
lines changed

.idea/workspace.xml

+703-358
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/app.iml

+2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,10 @@
7070
</content>
7171
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
7272
<orderEntry type="sourceFolder" forTests="false" />
73+
<orderEntry type="library" exported="" name="library-2.6.0" level="project" />
7374
<orderEntry type="library" exported="" name="support-v4-19.1.0" level="project" />
7475
<orderEntry type="library" exported="" name="ckchangelog-1.2.0" level="project" />
76+
<orderEntry type="library" exported="" name="library-2.4.0" level="project" />
7577
<orderEntry type="library" exported="" name="acra-4.5.0" level="project" />
7678
<orderEntry type="library" exported="" name="support-v13-19.1.0" level="project" />
7779
</component>

app/build.gradle

+4-5
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@ android {
1212
buildTypes {
1313
release {
1414
zipAlign true
15-
runProguard true
15+
runProguard false
1616
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
1717
debuggable false
1818
}
1919
}
2020
}
2121

2222
dependencies {
23-
debugCompile 'ch.acra:acra:4.5.0@jar'
24-
debugCompile 'com.android.support:support-v13:+'
25-
releaseCompile 'ch.acra:acra:4.5.0@jar'
26-
releaseCompile 'com.android.support:support-v13:+'
23+
compile 'ch.acra:acra:4.5.0@jar'
24+
compile 'com.android.support:support-v13:+'
2725
compile 'de.cketti.library.changelog:ckchangelog:1.2.0'
26+
compile 'com.nhaarman.listviewanimations:library:2.6.0'
2827
}

app/src/main/AndroidManifest.xml

+7-6
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="38"
5-
android:versionName="2.8b">
4+
android:versionCode="44"
5+
android:versionName="2.11">
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"
@@ -63,8 +63,8 @@
6363
<activity
6464
android:name="oly.netpowerctrl.widget.WidgetConfig"
6565
android:label="@string/app_name"
66-
android:description="@string/app_name_shortcut_desc"
67-
android:icon="@drawable/widget"
66+
android:description="@string/app_name_widget"
67+
android:icon="@drawable/netpowerctrl"
6868
android:theme="@style/Theme.Transparent">
6969
<intent-filter>
7070
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
@@ -88,8 +88,9 @@
8888
</intent-filter>
8989
</activity>
9090

91+
<!-- Widget -->
9192
<receiver
92-
android:icon="@drawable/widget"
93+
android:icon="@drawable/netpowerctrl"
9394
android:label="@string/app_name_widget"
9495
android:name="oly.netpowerctrl.widget.DeviceWidgetProvider">
9596
<intent-filter>

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

+1-5
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,7 @@ else if (msg.length < 14) {
154154
di.add(oi);
155155
}
156156

157-
new Handler(NetpowerctrlApplication.instance.getMainLooper()).post(new Runnable() {
158-
public void run() {
159-
NetpowerctrlApplication.getDataController().onDeviceUpdated(di);
160-
}
161-
});
157+
NetpowerctrlApplication.getDataController().onDeviceUpdatedOtherThread(di);
162158
}
163159

164160
/**

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

+21-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import oly.netpowerctrl.R;
2424
import oly.netpowerctrl.application_state.NetpowerctrlApplication;
2525
import oly.netpowerctrl.application_state.PluginInterface;
26+
import oly.netpowerctrl.application_state.RuntimeDataController;
2627
import oly.netpowerctrl.datastructure.DeviceInfo;
2728
import oly.netpowerctrl.datastructure.DevicePort;
2829
import oly.netpowerctrl.datastructure.Scene;
@@ -84,6 +85,14 @@ public void startDiscoveryThreads(int additional_port) {
8485
}
8586

8687
public void stopDiscoveryThreads() {
88+
RuntimeDataController d = NetpowerctrlApplication.getDataController();
89+
for (DeviceInfo di : d.configuredDevices) {
90+
if (di.getPluginInterface() == this) {
91+
di.setNotReachable("Energiesparmodus");
92+
d.onDeviceUpdated(di);
93+
}
94+
}
95+
8796
if (discoveryThreads.size() == 0)
8897
return;
8998

@@ -190,19 +199,21 @@ private static void executeDeviceBatch(DeviceInfo di, List<Scene.PortAndCommand>
190199
data[0] = 'S';
191200
data[1] = 'w';
192201
data[2] = data_outlet;
193-
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, data, DeviceSend.INQUERY_REQUEST));
202+
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, data, requestMessage, DeviceSend.INQUERY_REQUEST));
194203
}
195204
if (containsIO) {
196205
data[0] = 'I';
197206
data[1] = 'O';
198207
data[2] = data_io;
199-
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, data, DeviceSend.INQUERY_REQUEST));
208+
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, data, requestMessage, DeviceSend.INQUERY_REQUEST));
200209
}
201210

202211
if (callback != null)
203212
callback.onExecutionFinished(command_list.size());
204213
}
205214

215+
static final byte[] requestMessage = "wer da?\r\n".getBytes();
216+
206217
/**
207218
* Switch a single outlet or io port
208219
*
@@ -231,7 +242,8 @@ else if (command == DevicePort.TOGGLE)
231242
port.id, port.device.UserName, port.device.Password).getBytes();
232243
}
233244

234-
DeviceSend.instance().addJob(new DeviceSend.SendJob(port.device, data, DeviceSend.INQUERY_REQUEST));
245+
DeviceSend.Job j = new DeviceSend.SendJob(port.device, data, requestMessage, DeviceSend.INQUERY_REQUEST);
246+
DeviceSend.instance().addJob(j);
235247

236248
if (callback != null)
237249
callback.onExecutionFinished(1);
@@ -251,7 +263,7 @@ public void requestData() {
251263

252264
@Override
253265
public void requestData(DeviceInfo di) {
254-
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, "wer da?\r\n".getBytes(), DeviceSend.INQUERY_REQUEST));
266+
DeviceSend.instance().addJob(new DeviceSend.SendJob(di, requestMessage, DeviceSend.INQUERY_REQUEST));
255267
}
256268

257269
@Override
@@ -363,6 +375,11 @@ public void openConfigurationPage(DeviceInfo device, Context context) {
363375
context.startActivity(browse);
364376
}
365377

378+
@Override
379+
public boolean isNetworkPlugin() {
380+
return true;
381+
}
382+
366383
//
367384
// public boolean onlyLinkLocalDevices() {
368385
// boolean linkLocals = true;

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

-6
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,6 @@ private void saveAndFinish() {
8989
getFragmentManager().popBackStack();
9090
}
9191

92-
@Override
93-
public void onDestroy() {
94-
super.onDestroy();
95-
}
96-
9792
@Override
9893
public Dialog onCreateDialog(Bundle savedInstanceState) {
9994
@SuppressWarnings("ConstantConditions")
@@ -173,7 +168,6 @@ public void onCreate(Bundle savedInstanceState) {
173168
Toast.LENGTH_LONG).show();
174169
//noinspection ConstantConditions
175170
getFragmentManager().popBackStack();
176-
return;
177171
}
178172
}
179173

app/src/main/java/oly/netpowerctrl/application_state/NetpowerctrlApplication.java

+18-54
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77
import android.content.ServiceConnection;
88
import android.os.Handler;
99
import android.os.IBinder;
10+
import android.os.Looper;
11+
import android.util.Log;
1012

1113
import org.acra.ACRA;
1214
import org.acra.ReportingInteractionMode;
1315
import org.acra.annotation.ReportsCrashes;
1416

1517
import java.util.ArrayList;
1618
import java.util.Iterator;
17-
import java.util.List;
1819

1920
import oly.netpowerctrl.R;
20-
import oly.netpowerctrl.datastructure.DeviceInfo;
21-
import oly.netpowerctrl.network.DeviceQuery;
21+
import oly.netpowerctrl.main.EnergySaveLogFragment;
2222
import oly.netpowerctrl.network.DeviceQueryResult;
2323
import oly.netpowerctrl.network.DeviceSend;
2424
import oly.netpowerctrl.preferences.SharedPrefs;
@@ -37,6 +37,7 @@
3737
resToastText = R.string.crash_toast_text)
3838
public class NetpowerctrlApplication extends Application {
3939
public static NetpowerctrlApplication instance;
40+
private Handler mainThreadHandler = new Handler(Looper.getMainLooper());
4041

4142
private RuntimeDataController dataController = null;
4243
private int mDiscoverServiceRefCount = 0;
@@ -144,58 +145,17 @@ public void stopUseListener() {
144145
}
145146
}
146147

147-
/**
148-
* Detect new devices and check reachability of configured devices
149-
*/
150-
private boolean isDetecting = false;
151148

152-
public void detectNewDevicesAndReachability(final DeviceQueryResult callback) {
149+
public void findDevices(final DeviceQueryResult callback) {
153150

154-
// The following mechanism allows only one update request within a
155-
// 1sec timeframe and only if the service is available.
156-
if (isDetecting || mWaitForService || mDiscoverService == null)
151+
// only if the service is available.
152+
if (mWaitForService)
157153
return;
158154

159-
isDetecting = true;
160-
Handler h = new Handler();
161-
h.postDelayed(new Runnable() {
162-
@Override
163-
public void run() {
164-
isDetecting = false;
165-
}
166-
}, 1000);
167-
168-
// First try a broadcast
169-
NetpowerctrlApplication.getDataController().clearNewDevices();
170-
new DeviceQuery(new DeviceQueryResult() {
171-
@Override
172-
public void onDeviceTimeout(DeviceInfo di) {
173-
}
174-
175-
@Override
176-
public void onDeviceUpdated(DeviceInfo di) {
177-
}
178-
179-
@Override
180-
public void onDeviceError(DeviceInfo di, String error_message) {
181-
}
182-
183-
@Override
184-
public void onDeviceQueryFinished(List<DeviceInfo> timeout_devices) {
185-
dataController.notifyStateQueryFinished();
186-
if (callback != null)
187-
callback.onDeviceQueryFinished(timeout_devices);
188-
189-
if (timeout_devices.size() == 0)
190-
return;
191-
192-
// Do we need to go into network reduced mode?
193-
List<DeviceInfo> remaining = new ArrayList<DeviceInfo>(dataController.configuredDevices);
194-
remaining.removeAll(timeout_devices);
195-
if (remaining.size() == 0)
196-
mDiscoverService.finish();
197-
}
198-
});
155+
if (mDiscoverService == null) {
156+
Log.e("findDevices", "No service! Use useListener!");
157+
} else
158+
mDiscoverService.findDevices(callback);
199159
}
200160

201161
/**
@@ -212,9 +172,9 @@ public void onServiceConnected(ComponentName className,
212172
if (mDiscoverServiceRefCount == 0)
213173
mDiscoverServiceRefCount = 1;
214174
mWaitForService = false;
215-
216-
// We do a device detection in the wifi change listener already
217-
detectNewDevicesAndReachability(null);
175+
if (SharedPrefs.logEnergySaveMode())
176+
EnergySaveLogFragment.appendLog("Hintergrunddienst gestartet");
177+
mDiscoverService.start();
218178

219179
// Notify all observers that we are ready
220180
notifyServiceReady();
@@ -237,4 +197,8 @@ static public NetpowerctrlService getService() {
237197
static public RuntimeDataController getDataController() {
238198
return instance.dataController;
239199
}
200+
201+
public static Handler getMainThreadHandler() {
202+
return instance.mainThreadHandler;
203+
}
240204
}

0 commit comments

Comments
 (0)